public virtual void Shuffle() { _cards.Shuffle(GetRandomPermutation(0, _cards.Count)); foreach (var card in _cards) { card.ResetVisibility(); } Shuffled(this, EventArgs.Empty); }