모름

The Fisher-Yates Shuffle

 

public static class Utility
{
    public static T[] ShuffleArray<T>(T[] array, int seed) {
        System.Random prng = new System.Random(seed);

        for (int i = 0; i < array.Length - 1; i++) {
            int randomIndex = prng.Next(i, array.Length);
            T tempItem = array[randomIndex];
            array[randomIndex] = array[i];
            array[i] = tempItem;
        }

        return array;
    }
}

 

유명한 셔플 알고리즘입니다. 배열을 중복 없이 랜덤하게 섞은 후 리턴합니다. *prng는 램던넘버생성기의 약자입니다.