Thanks lionz! That's pretty much what I did
So I created a couple of variables: curPermTablePos to save what index of the permutation table to look at, gameLength to save how many random items I wanted to get.
Then I created a permuation table with 7 (gameLength) values betweeon 0 and 50. I found if I left the offset at 0 I would only get values 0-7 in my permutation table, so I changed it to be
int(random(qCount-gameLength))
where qCount is the total number of questions there are, so this evaluates to
int(random(50-7))
so I get a random offset of a whole number between 0 and 43.
When I get a question I call
which uses the curPermTablePos variable to load a random entry from my list of questions.
Once I have loaded the question I just increment curPermTablePos by 1 to get the next question.