Вы используете весь массив слов каждый раз, когда проверяете случайное слово. Мое понимание random.Next()
не в том, что он использует случайное число, отличное от 0-n, каждый раз, когда он вызывается, но генерирует новое число из 0-n, которое может повториться до наступления n раз.
Чтобы исправить это, настраивайте свой массив каждый раз, когда вы используете слово - переместите найденное слово в конец и настройте диапазон-1.