Example #1
0
        // NOTE: Fisher–Yates Shuffle (algorithm)
        public static void Shuffle <T>(this T[] array)
        {
            if (null == array)
            {
                return;
            }

            int count = array.Length;

            for (int n = 0; n < count; ++n)
            {
                int indexToSwap = SystemExtension.RandomRange(n, count);
                T   oldValue    = array[n];
                array[n]           = array[indexToSwap];
                array[indexToSwap] = oldValue;
            }
        }