public static HashSet <T> SampleDistinct <T>(this IPolyrand random, T[] source, int count) => random.SampleDistinct(source.Length, count).Select(i => source[i]).ToHashSet();