private static Random random = new Random();
private static void Shuffle<T>(T[] array)
throw new ArgumentNullException(nameof(array));
for (int i = 0; i < array.Length - 1; ++i)
int r = random.Next(i, array.Length);
(array[r], array[i]) = (array[i], array[r]);
public static void Main()
char[] demo = new char[] {'a', 'b', 'c', 'd', 'e'};
Console.WriteLine($"[{string.Join(", ", demo)}]");