public static void ShuffleWithSeed <T>(this T[] array, int seed) { if (null == array) { return; } int count = array.Length; SystemExtension.RandomSeed(seed); for (int n = 0; n < count; ++n) { //int indexToSwap = SystemExtension.RandomRange(n, count); int indexToSwap = SystemExtension.RandomRange(n, count); T oldValue = array[n]; array[n] = array[indexToSwap]; array[indexToSwap] = oldValue; } }