That's complex, because there are two conflicting constraints here: randomness and lack of repetition.
You can do randomness from a DB:
SELECT TOP 60 * FROM MyTable
ORDER BY NEWID()
It's the lack of repetition that's a problem.
The way I'd do it is to keep a usage count with each row, and UPDATE it from your C# each time you display a question. Then use the SELECT to ORDER by the usage count and then NEWID:
SELECT TOP 60 * FROM MyTable
ORDER BY UseCount, NEWID()
That way, the oldest question are returned, in a random order.