Сталкивался с такой задачей. Решил с помощью рекурсии. Не очень эффективно, но если нужно небольшое количество записей, то ок.
Алгоритм следующий: узнаем общее число записей в коллекции, генерируем случайное число от 1 до общего числа, делаем skip со случайным числом, проверяем, есть ли такая запись в массиве, если нет, то пушим. Как только получаем необходимое число записей - выходим их функции. Можно оптимизировать, конечно, если записей нужно много.