Advertisement
Guest User

Untitled

a guest
Dec 30th, 2012
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.34 KB | None | 0 0
  1.         private static IEnumerable<T> ShuffleIterator<T>(this IEnumerable<T> source)
  2.         {
  3.             T[] elements = source.ToArray();
  4.             var rng = RandomProvider.GetThreadRandom();
  5.  
  6.             for (int i = elements.Length; i > 0; i--)
  7.             {
  8.                 int swapIndex = rng.Next(i + 1);
  9.                 yield return elements[swapIndex];
  10.                 elements[swapIndex] = elements[i];
  11.             }
  12.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement