IEnumerable.Shuffle Implementation

Following code is an implementation of Shuffle method on IEnumerable based on the Durstenfeld modification of Fisher Yates Shuffle algorithm, a simple and efficient method. More information on the algorithm can be found in Wiki. The complete code can be found in Github