public static class ShuffleExtensions
{
public static IEnumerable<tsource>
RandomShuffle<tsource>(this IEnumerable<tsource> source)
{
var rand = new Random();
return source.Select(t => new {
Index = rand.Next(),
Value = t })
.OrderBy(p => p.Index)
.Select(p => p.Value);
}
}