Listの要素をランダムに並べ替える
C#でListに格納した要素をランダムに並べ替えたい時があったので、その時のメモになります。
コード
コードは簡単でOrderBy()を使って以下のようにするだけです。
items = items.OrderBy(x => Guid.NewGuid()).ToList();
Guid.NewGuid()でユニークな値を要素ごとに設定して、その値で並べ替えています。
Guidは確実に一意な値が取得できるわけではないですが、同じ値だったとしても、ランダムに並べ替えるのであればそれはそれでありなので、実用上は問題ありません。