Creo que la solución no debe ir encaminada a no permitir ejecutar un botón del navegador para que no se produczca esa acción .. sino en evaluar el problema (que ya está claro que es lo que sucede) para ver otras alternativas.
Yo sugiero usar sesiones (para variar) ...
Al ingresar el alumno a tu encuesta te guardas en una sesión los "ID" (identificadores) de esas preguntas que se generaro ..
La validación para "generar" otra vez esas preguntas aleatorias o no pasaría por revisar si existe la variable de sesión creada o no .. Así, si se recarga la página .. la variable de sesión ya existe y no entrarias a la rutina de generar otra vez esas preguntas sino a la que las visualize ..
Para eso puedes usar un array y lo guardas en tu session
Código PHP:
<?
session_start();
if (isset ($_SESSION['preguntas'])){
$preguntas_array=$_SESSION['preguntas'];
} else {
// genera tus preguntas y las almacenas en la sesión:
// suponiendo que generas un array con esos ID de las preguntas tipo:
$preguntas_array=array(9,3,6,2....);
// volcado del array sobre la variable de sesión...
$_SESSION['preguntas']=$preguntas_array;
}
// Presentas las preguntas ... pero desde el array $preguntas_array
foreach ($preguntas_array as $ID_pregunta){
// usa el ID_pregunta . .no sé si tendras un array de preguntas .. o una BD o de donde las obtengas y el ID sea el identicativo de esa pregunta.
}
Un saludo,