Você pode usar
LIMIT m,n
para limitar o número de resultados obtidos e compensar os resultados por um determinado valor. Agora você poderia fazer algo como:
SELECT * FROM questions WHERE QuizID=1 LIMIT $page,5;
Onde você calcula a
$page
baseado em um $_GET
variável. Mas isso não resolverá sua aleatoriedade. Você sempre pode propagar RAND($key) por uma determinada chave que você salva em sua sessão para poder
ORDER BY RAND($key)
e use a técnica de limite acima. Provavelmente, o mais simples de implementar seria obter todo o conjunto de resultados, embaralhá-lo e armazená-lo em cache. Em seguida, use um php para mostrar apenas um pedaço específico do cache.
Uma vez que isso está relacionado à paginação. Deixe-me dizer-lhe, LIMIT m,n pode não ser tão rápido quanto parece. Saiba como melhorá-lo e leia mais sobre Paginação eficiente usando MySQL