public void ShuffleDeck() { // to shuffle a deck, assign the next random number sequentially to the deck. // don't just do random of 52 cards, but other to prevent duplicate numbers // from possibly coming in foreach (var oneCard in SingleDeck) { oneCard.RndNumber = rndGen.Next(3901); // any number could be used... } // great, now every card has a randomized number assigned. // return the list sorted by that random number... ShuffledDeck = SingleDeck.OrderBy(o => o.RndNumber).ToList(); }