First you should understand your problem. Just check your requirements and think of objects. You certainly have "question" and "answers". Each Question has 4 possible answers and only one is correct. So a first, very simple approach would look like that.
class Question
{
public string QuestionText{ get; set; }
public string AnswerA { get;set }
public string AnswerB { get;set }
public string AnswerC { get;set }
public string AnswerD { get;set }
}
This is a good start, but not perfect. You could now store the correct answer aswell inside this question object. But to use this new property to its fullest, it would make sense to make our answers a bit more dynamic.
class Question
{
public Question()
{
Answers = new string[4];
}
public string QuestionText{ get; set; }
public string[] Answers { get;set; }
public int CorrectAnswer {get;set; }
}
So with this small object we can now create all our questions like this:
var question = new Question();
question.QuestionText = "What color is snow?";
question.Answers[0] = "Red";
question.Answers[1] = "Yellow";
question.Answers[2] = "White";
question.Answers[3] = "Green";
question.CorrectAnswer = 2;
// ... more questions
var listOfQuestions = new List();
listOfQuestions.Add(question);
How to sort randomly is another topic which is not difficult to find here on SO.
I personaly like icemaninds idea, you can use his answer to improve my basic approach.