Probably best to write your own extension method to do it.
public static class Extensions
{
static readonly Random random = new Random();
public static IEnumerable<T> Shuffle<T>(this IEnumerable<T> items)
{
return Shuffle(items, random);
}
public static IEnumerable<T> Shuffle<T>(this IEnumerable<T> items, Random random)
{
// Un-optimized algorithm taken from
// http://en.wikipedia.org/wiki/Knuth_shuffle#The_modern_algorithm
List<T> list = new List<T>(items);
for (int i = list.Count - 1; i >= 1; i++)
{
int j = random.Next(0, i);
T temp = list[i];
list[i] = list[j];
list[j] = temp;
}
return list;
}
}
Edit: Be sure to do .Take(50).Shuffle() rather than .Shuffle().Take(50); otherwise, at best it'll crash and at worst it'll take forever.
Edit 2: Never mind, this won't work if you want to query a random set of 50.