Недавно такое же надо было делать. В итоге для меня оптимальным был вариант ниже. Если вам единовременно надо вывести
X разных вопросов из Y, можно сделать примерно так:

Код:
max = 15; all = 50
array = new Array (max) // массив с номерами вопросов
u = 0
while (u == 0) {
for (i = 1; i <= max; i++) {
array[i] = Math.randomInt(all) + 1 // случайный номер вопроса
}
u = array.sort(Array.RETURNINDEXEDARRAY | Array.UNIQUESORT)
}
Здесь тупо забиваем массив случайными номерами, и если есть совпадения - переделываем. Отношение Y/X должно быть не менее 4-5 для хорошей работы скрипта, добавьте еще вопросов или уменьшите до 10 количество выводимых.