// 1~100が入ったリストを作成var baseList = new List<int>();baseList.AddRange(Enumerable.Range(1, 100));
//10ずつに分割var separateCount = 10;var itemListList = baseList.Select((v, i) => new { v, i }).GroupBy(x => x.i / separateCount).Select(g => g.Select(x => x.v).ToList()).ToList();
foreach (var itemList in itemListList){  Console.WriteLine("hoge");  foreach (var item in itemList)  {    Console.WriteLine(item);  }  Console.WriteLine("fuga");}出力結果
hoge12345678910fugahoge11121314151617181920fugahoge2122...省略こうするとランダムに並び替えたうえで分割することができる
var itemListList = baseList.OrderBy(x => Guid.NewGuid()).Select((v, i) => new { v, i }).GroupBy(x => x.i / separateCount).Select(g => g.Select(x => x.v).ToList()).ToList();追記
.NET6 で追加された Chunk メソッドを使用するともっと簡単に書ける
//10ずつに分割var itemListList = Enumerable.Range(1, 100).Chunk(10);