array problem index out of range ? why ?

private List<string> questions = new List<string>();
private List answerOrder = new List(new int {1,2,3,4,5});

    void DrawInfo() {
        Rect rect = new Rect(500, 100, 400, 200);
        Rect close = new Rect(600, 500, 200, 100);
        if(GUI.Button(close, "ATTACK")) {
            Poop = !Poop;
        }

        if (Poop) {
            GUI.Box(rect, Info);
            GUI.Label(new Rect(520, 110, 400, 30), questions[0][0]);
            if (GUI.Button(new Rect(520, 200, 100, 30), questions[0][answerOrder[0]])) {
                HandleAnswer(answerOrder[0]);
            }
            if (GUI.Button(new Rect(520, 250, 100, 30), questions[0][answerOrder[1]])) {
                HandleAnswer(answerOrder[1]);
            }
            if (GUI.Button(new Rect(780, 200, 100, 30), questions[0][answerOrder[2]])) {
                HandleAnswer(answerOrder[2]);
            }
            if (GUI.Button(new Rect(780, 250, 100, 30), questions[0][answerOrder[3]])) {
                HandleAnswer(answerOrder[3]);
            }
          if (GUI.Button(new Rect(780, 250, 100, 30), questions[0][answerOrder[4]])) {
                HandleAnswer(answerOrder[4]);
            }
        }
    }

  
    void Start() {
        // String order: question, correct, wrong, wrong, wrong
        questions.Add(new string[] { "What in the capital of France?", "Paris", "New York", "London", "Madrid" });
        questions.Add(new string[] { "Which of these is an amphibian?", "Frog", "Shark", "Lizard", "Hawk" });
        questions.Add(new string[] { "Which of these is an planet?", "Neptune", "Thor", "Pegasus", "Hera" });
	questions.Add(new string[] { "Which of these is smallest planet?", "Pluto", "Thor", "Pegasus", "Hera" });
	questions.Add(new string[] { "What in the capital of Philippines?", "Manila", " Las Pinas", "Makati", "Bulacan" });
        Shuffle(questions);
        Shuffle(answerOrder);
    }

    void NextQuestion() {
        questions.RemoveAt(0);
        Shuffle(answerOrder);
    }

  
    static readonly System.Random rng = new System.Random();
    public static void Shuffle<T>(IList<T> list) {
        int n = list.Count;
        while(n > 1) {
            n--;
            int k = rng.Next(n + 1);
            T value = list[k];
            list[k] = list[n];
            list[n] = value;
        }
    }
}

what happens is when i run it error will occur saying array index is out of range and i dont know how to fix it please help me thankyou

The problem appears to be on line 30.
Each question has 4 possible answers (index 1 to 4) but answersOrder[4] refers to index 5, which is out of range.

I’m betting it’s this:

int n = list.Count;

Let’s say that’s 5.

Then n-- makes it 4;

Then rng.Next( n + 1); // does what?

May result in a 5? which would be out of bounds.