Вечный цикл. Зачем приравнивать value к value2 и создавать цикл, в котором ставишь условие value == value2?
Не value = value2 = random.randint(1, 8), а
value = random.randint(1, 8)
value2 = random.randint(1, 8)
вечный он будет если randint будет выдавать одно и то же значение )
В противном случае в цикле он присвоит value2 первое значение которое не равно value, и успокоится )
Если же randint будет отдавать одно и то же значение - придется менять подход, как в прочем и в прочих приведенных решениях )))
Зачем приравнивать value к value2 и создавать цикл
очевидно - проинициализировать переменную value2 и сэкономить целую строчку кода, дабы не дублироваться лишний раз )))
tixonochek, как минимум пустая трата памяти, не говорю что её очень мало, но смысла в создании отдельной функции для такой мелочной задачи нет. Если каким-то чудом будет выпадать больше 1000 одинаковых случайных чисел, то капут твоей программе. RecursionError.