This is difficult to answer without more information.
If you have a straight-forward (i.e., one sentence) question and a simple answer, you could put this information on one sheet with the A column being the questions and the B column being the respective answer.
Then, in the C column fill down the numbers from 1 to the number of questions. In the D column, fill down =RAND(). If you then select columns C and D and sort based on column D, you have a unique set of numbers in column C.
Note: =RAND() is volatile, so every time you run this your random numbers in D will change and you'd have to resort.
Suppose you had 20 rows of questions but you wanted a test of 10 questions. On another sheet in, say, the A1 cell (then fill down 10 rows) write: =indirect("Sheet1!A" & Sheet1!C1).
On another sheet you could put in the A column (fill down): =indirect("Sheet1!A" & Sheet1!C1) and in the corresponding B column: =indirect("Sheet1!A" & Sheet1!B1). This will give you a sheet with the question and correct answer next to it.
If you follow this, you could do something similar with multiple choice questions with the M/C answers as text in column B of the original sheet.
Column C would contain the correct answer choice, and D and E would have the sequence numbers and RAND as noted above.
Then, your test question sheet would pull from Sheet1 in the same way but pull column A then column B.
Etc., etc.
Make sense? Any help?