public CardSet ExtractRandom(Random rand, int count)
{
CardSet set = new CardSet();
for (int i = 0; i < count; i++)
{
if (card_set.Count == 0)
break;
int card_index = rand.Next(card_set.Count);
set.Add((Card)card_set[card_index]);
RemoveCount(card_set[i]);
card_set.RemoveAt(card_index);
}
return set;
}