LINQ を使わずに配列をシャッフルする方法を以前紹介したが
今回はLINQ を利用した配列をシャッフル方法を記述する
【C#】配列をシャッフルしたり、ランダムに取得する - うにてぃブログ
Guid
C# には GUID を生成するために Guid 構造体が存在する
Guid 構造体 (System) | Microsoft Docs
この構造体の Guid.NewGuid()
を呼び出すことでユニークなIDが生成されるのでこれを利用する
var list = Enumerable.Range(0, 20) .Select(i => i) .OrderBy(i => Guid.NewGuid());
OrderBy でソート順に生成されたGuidを利用することでランダムな並び順にすることが可能になる
※ 速度の計測をしてないので、数が多いと遅い可能性があります
別にRandom.Range(0, 1000)でも問題は無い