配列・コレクションをシャッフルする方法について。
配列・コレクション・IEnumerable<T>のシャッフル
Enumerable.OrderByメソッドを使って任意のIEnumerable<T>をシャッフルするためのメソッドの例。 OrderByメソッドに対してランダムなキーを与えることで、ランダムな順序に並べ替える。
この例では、ランダムなキーの生成にRandomNumberGeneratorクラスを使用しているが、Randomクラスを用いても同じように実装できる。 また、使いやすいように拡張メソッドとして呼び出せるようにしてある。
このメソッドはOrderByメソッドを用いているため、オリジナルのIEnumerable<T>には変更を加えない(非破壊的)。
配列のシャッフル
配列のシャッフルを行うためのメソッドの例。 使いやすいように拡張メソッドとして呼び出せるようにしてある。 オリジナルの配列には変更を加えず(非破壊的)、シャッフルした配列を戻り値として返す。