Вадим, спасибо за варианты реализации. Их на самом деле не мало.
Насчет странности алгоритма случайного выбора тестовых вопросов. Не знаю, как реализован этот алгоритм в реальности, но совпадений при выборе студентами во время экзаменов очень много.
Я думаю, при дистанционном обучении, когда слушатели удалены друг от друга, это не имеет большого значения. Поэтому и разработчики особо не парятся по этому вопросу. Ясно, что на повторяемость влияет и количество вопросов в банке.