public List <T> GetRandomItems(int count) { List <T> result = new List <T>(); var tl = new RandomList <T>(this); for (int i = 0; i < count; i++) { if (tl.Count <= 0) { break; } var t = tl.GetRandomItem(); result.Add(t); tl.Remove(t); tl.TotalValue = 0; } return(result); }