Вылезает ошибка при использовании функции pop

Смысл программы, задавать пользователю вопросы на время Чтобы вопросы не повторялись я решил использовать функцию pop Ошибка вылетает по принципу русской рулетки в любой момент Вот и сама ошибка:

IndexError: pop index out of range

А вот и сам код:

import random
import time
questions = ['Каким словом называли в древние времена водяные часы?','Именно эта страна дарит Великобритании красивую ель на Рождество. Какая?','Расширение мониторов меряют в …', 'Как называется линия, у которой нет концов?', 'Кем был Чингисхан?', 'Что в море является ориентиром для моряка?']
answers = {0:'Клепсидра',1:'Норвегия',2:'пикселях',3:'Луч',4:'ханом',5:'Полярная звезда'}
numbers = [0,1,2,3,4,5]
def timequestion():
    points = 0
    for i in range(5):
        start = time.time()
        rand_index = numbers.pop(random.choice(numbers))
        print('На ответ даётся 10 секунд')
        question = questions[rand_index]
        print(question)
        right_answer = answers[rand_index]

        stop = time.time()
        answer = input('Введите ответ:')
        if answer.lower()== right_answer.lower():
            if stop - start > 10:
                print('Время истекло')
                continue
            else:
                print('Ответ верный!')
                points += 1
            continue
        else:
            print('Ответ неверен!')
            continue
    print('Вы набрали ' + str(points))
timequestion()

Ответы (1 шт):

Автор решения: n1tr0xs

Проблема в том, что pop изымает элемент по индексу, а не по значению, на что вы судя по всему рассчитывали. Вы можете сделать так:

def timequestion():
    points = 0
    for i in range(5):
        start = time.time()
        rand_index = random.choice(numbers)
        numbers.remove(rand_index)
        ...

Или как предложил @CrazyElf в комментариях:

def timequestion():
    points = 0
    random.shuffle(numbers)
    for i in range(5):
        start = time.time()
        rand_index = numbers.pop()
        ...
→ Ссылка