.

Generic Random / Shuffle extention method for Lists etc.

This will allow you to shuffle and Ilist / List etc.

public static class RandomExtension
{
    private static Random rng = new Random();

    public static void Shuffle<T>(this IList<T> list)
    {
        int n = list.Count;
        while (n > 1)
        {
            n--;
            int k = rng.Next(n + 1);
            T value = list[k];
            list[k] = list[n];
            list[n] = value;
        }
    }
}

Another neat “trick” to do so is:

var shuffledcards = cards.OrderBy(a => Guid.NewGuid());

What's your thoughts on this?

*

Protected by WP Anti Spam