Let's randomize IEnumerable
public static IEnumerable randomize(this IEnumerable source) { var y = (from s in source select new { n = myrandomeImpl.Next(), v = s }).OrderBy(f => f.n); foreach (var item in y) yield return item.v;}
public static IEnumerable<T> randomize<T>(this IEnumerable<T> source) {
var y = (from s in source select new { n = myrandomeImpl.Next(), v = s }).OrderBy(f => f.n);
foreach (var item in y)
yield return item.v;
}