public static T RandomElement <T>(this IList <T> list) { if (list != null) { int indx = RandomEx.GetRange(0, list.Count); if (list.Count > indx) { return(list[indx]); } } return(default(T)); }
public static void Shuffle <T>(this IList <T> list) { int n = list.Count; while (n > 1) { n--; int k = RandomEx.GetRange(0, n + 1); T val = list[k]; list[k] = list[n]; list[n] = val; } }