使用前面提到的 Fisher-Yates随机算法(在O(n)时间内)
int X = 3; int Y = 4;int[] array = new int[X * Y];for (int i = 0; i < array.Length; i++) array[i] = i;FisherYatesShuffle(array);var randomSlots = array.Select((i,j) => new {x=array[j]%X , y=array[j]/X }) .ToArray();public static void FisherYatesShuffle<T>(T[] array){ Random r = new Random(); for (int i = array.Length - 1; i > 0; i--) { int j = r.Next(0, i + 1); T temp = array[j]; array[j] = array[i]; array[i] = temp; }}


