Fisher-Yates

CSharp · Console

/Program.cs

using System;
					
public class Program
{
	private static Random random = new Random();
	
	private static void Shuffle<T>(T[] array) 
	{
		if (array is null)
			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'};
		
		Shuffle(demo);
		
		Console.WriteLine($"[{string.Join(", ", demo)}]");
	}
}
;