namespace Faraon.Core.Models; public class Deck { private readonly Random _random; public Deck(int? seed = null) { _random = seed.HasValue ? new Random(seed.Value) : new Random(); } public static List CreateStandardDeck() { var cards = new List(32); foreach (Suit suit in Enum.GetValues()) { foreach (Rank rank in Enum.GetValues()) { cards.Add(new Card(suit, rank)); } } return cards; } public List CreateShuffledDeck() { var deck = CreateStandardDeck(); Shuffle(deck); return deck; } public void Shuffle(List list) { int n = list.Count; while (n > 1) { n--; int k = _random.Next(n + 1); (list[k], list[n]) = (list[n], list[k]); } } }