public ISet<int> Select(IntRange fromRange, int count) { int size = TournamentSize; if (size < count) size = count; var arena = new SortedSet<int>(); while (arena.Count != size) { arena.Add(fromRange.PickRandomValue()); } return new HashSet<int>(arena.Take(count)); }