using System.Collections.Generic;
string[] cards = new string[52] {
(char)H + "A", (char)H + "2", (char)H + "3", (char)H + "4", (char)H + "5", (char)H + "6", (char)H + "7", (char)H + "8", (char)H + "9", (char)H + "10", (char)H + "J", (char)H + "Q", (char)H + "K",
(char)D + "A", (char)D + "2", (char)D + "3", (char)D + "4", (char)D + "5", (char)D + "6", (char)D + "7", (char)D + "8", (char)D + "9", (char)D + "10", (char)D + "J", (char)D + "Q", (char)D + "K",
(char)C + "A", (char)C + "2", (char)C + "3", (char)C + "4", (char)C + "5", (char)C + "6", (char)C + "7", (char)C + "8", (char)C + "9", (char)C + "10", (char)C + "J", (char)C + "Q", (char)C + "K",
(char)S + "A", (char)S + "2", (char)S + "3", (char)S + "4", (char)S + "5", (char)S + "6", (char)S + "7", (char)S + "8", (char)S + "9", (char)S + "10", (char)S + "J", (char)S + "Q", (char)S + "K"
Console.WriteLine("Unshuffled cards...");
for (int j = 0; j < cards.Length; j++)
Console.Write("{0} ", cards[j]);
Random rd = new Random();
int randomNum = rd.Next(0,100)+1;
var shuffling = cards.OrderBy(cards => rd.Next());
List<int> repeat = new List<int>();
for (int k = 0; k < 52; k++) {
int tmpN = rd.Next(0,100)+1;
while (!repeat.Contains(tmpN)) {
Console.WriteLine("\n\nShuffled cards...");
for (int j = 0; j < cards.Length; j++)
Console.Write("{0} ", cards[j]);
Console.WriteLine("\n\nPress any key to continue...");