/// <summary> /// リストの要素をランダムに並び替える /// </summary> public static void Shuffle <T>(this Original.IList <T> list, Random random = null) { for (int indexA = 0; indexA < list.Count; ++indexA) { int indexB = list.RandomIndex(random); list.Swap(indexA, indexB); } }
/// <summary> /// ランダムなindexを返します。 /// </summary> public static int RandomIndex <T>(this Original.IList <T> list) { return(list.RandomIndex(new Random())); }
/// <summary> /// ランダムな位置の項目を削除し、削除された項目を返します。 /// </summary> public static T PopRandom <T>(this Original.IList <T> list, Random random = null) { var index = list.RandomIndex(random); return(list.Pop(index)); }