Fiz o código utilizando with e list comprehension da seguinte forma:
with open('frutas.txt', 'r') as arquivo:
palavras = [fruta.strip() for fruta in arquivo]
index_aleatorio = random.randrange(0, len(palavras))
Fiquei em dúvida com relação ao escopo da variável index_aleatorio, uma vez que está dentro do with. Se eu, por exemplo, inicializo com um valor zero, antes do with, o Pycharm dá a dica de remover essa declaração. As variáveis locais em Python são acessíveis dentro de toda uma função, mesmo que sua declaração seja feita dentro de estruturas condicionais ou de repetição, etc?