Let me make sure that I understand you correctly:
Questions: [question0, question1, question2, ... ]
Incorrect answers: [ic0, ic1, ic2, ic3, ... ] <--- Are these question IDs or answerIds?
Are you transferring all of the incorrect answers at once, or one at a time?
I think you might be better of transferring them one at a time, while the user is taking the test.
Something like:
if answerChosen is incorrect
--- questionArray: Remove questionIndex
--- incorrectArray: Push (at end) questionIndex