ja bym ci radził zapisywać odpowiedzi i numery pytań w ciasteczkach, dlatego że po przypadkowym wyłączeniu okna przeglądarki użytkownik będzie miał zapisane wszystko w ciasteczkach. Funkcje które ci się przydadzą to
rand Rand to chyba funkcja losująca liczby pseudolosowe, czyli mogą one się powtórzyć(przynajmniej w C++ tak jest) dlatego będziesz musiał sprawdzać czy jakieś pytanko nie jest wylosowane np 2 razy w puli pytań. Wszystkie pytania najlepiej trzymać chyba w bazie(najwygodniej). Po wysłaniu quizu nie zapomnij usunąć ciasteczek, które twój skrypt stworzył, bo jak użytkownik wylosuje nowy zestaw i trafi w pytanie, na które już odpowiadał to może mieć zaznaczoną odpowiedź heh

No i to chyba na tyle. Powodzenia

ps. prosty sposób na sprawdzanie, czy liczba nie została przypadkiem wylosowana jest w manualu