public static T GetRandom <T>(this IEnumerable <T> enumerable) { if (enumerable.Count() == 0) { return(default(T)); } int id = RandomEx.Next(enumerable.Count()); return(enumerable.ElementAt(id)); }
public static IEnumerable <int> NonRepeatableRandoms(int minValue, int maxValue, int count) { var result = new List <int>(); var values = Enumerable.Range(minValue, maxValue - minValue).ToList(); count = Math.Min(maxValue - minValue, count); for (int i = 0; i < count; ++i) { int index = RandomEx.Next(values.Count); result.Add(values[index]); values.RemoveAt(index); } return(result); }