Ola,
Revendo o codigo, nao deveria ser "len(palavras) -1" ? Porque estamos depois pegando de um array que começa em "0". Dessa forma, se temos 5 palavras cadastradas, o array vai de 0 a 4. Está certo meu pensamento ?
arquivo = open("palavras.txt", "r")
for linha in arquivo:
palavras.append(linha.strip())
palavra_secreta = palavras[(random.randrange(0, len(palavras) - 1))].upper()