Returns a new Iterable with shuffled elements.
Iterable<T> shuffled() sync* { List<T> list = toList(); list.shuffle(); for (T e in list) { yield e; } }