У меня есть метод расширения для этого в моем архиве :
static class IEnumerableExtensions {
public static T PickRandomOne<T>(this IEnumerable<T> list, Random rnd) {
T picked = default(T);
int cnt = 0;
foreach (T item in list) {
if (rnd.Next(++cnt) == 0) {
picked = item;
}
}
return picked;
}
}
Использование:
Random rnd = new Random();
Bot bot = (from a in dc.Bot select a).PickRandomOne(rnd);
Преимущество этого метода в том, что вам не нужно заранее знать, сколько элементов существует, поэтому вам не нужно запускать запрос дважды.