Why not create a number field called 'SortOrder', then run a script as part of the 'Start New Quiz' script that runs down the found set and sets the SortOrder number using the Random Function. Then sort by that number, and GTR [First].
I would be concerned if this were multi-user and you are setting a field. You would have to (possibly) deal with record locking AND all Users would see the same order or over-write other Users' sort order. However, the idea is sound and if you create an unstored calculation (result is number) with something like:
Int ( Random * Get ( FoundCount ) ) + 1
... then you can sort on that field. Each new window, screen redraw or different User will get a different sorted number set and no need to use script (except single line with Sort). I will make an assumption that you do not have 10,000 questions? Only if the numbers gets really high would sorting on unstored cause performance issues. In fact, Random re-calculates twice - once when sorted and once when finally displayed and the result numbers will not match the numbers it sorts by so do not bother trying to display this calculation.
It is a strange behavior with Random but in this situation, it can be an advantage, producing true random sets for Users. To stop the double-evaluation on the entire record set, perform the sort on a null layout (no fields) before switching to the layout showing the questions. If you would like sample file, we can provide one.
Both the responses from LaRetta and Sorbsbuster are great.
Thanks for your input. This is much appreciated.