public ItemsCollection getRandomItems(int count) { var result = new ItemsCollection(); if (Count <= count) { if (Count < count) { ErrorMessage.Show($"Requesting {count} items from {Count} available items"); } return(new ItemsCollection(getItemDict().Values)); } List <Item> possibleItems = getItemDict().Values.ToList(); for (int i = 0; i < count; i++) { int index = BER2.Util.Randomness.Random.Range(0, possibleItems.Count); Item item = possibleItems[index]; result.addItem(item); possibleItems.RemoveAt(index); } return(result); }