Как быстро получить случайное слово из файла на 12 ГиБ?
Вариант с потолка: генерируйте случайную позиции в файле (от нуля до размера файла в байтах). Читаете все окружающие символы пока не найдете два символа новой строки ('\n') до и после исходной случайной позиции. Между этими символами новой строки и будет ваше случайное слово. 

Рандом, конечно же, не совсем честный и сильно зависит от различия в длинах строк в файле.
Какая максимальная длина слова? Ну допустим 20 символов.

Не в курсе насчет питона. Но я-бы убрал фактор плавающей длины. Например я-бы разбил
этот 12Гб файл на 20 файлов. Допустим в первом будут лежать все слова длиной в 1 символ.
Во втором 2 символа. И так далее.

Тогда формула будет такая. Считаем распределение слов по этим 20 файлам. Там гистограмма получается.
Типа допустим 5% на 8 символьные слова. 8% на 9 символьные и так далее. Выбираем случайный файл 
ну как-бы учитывая "перекос". И потом уже внутри этого файла просто ищем случайное слово. Будет
быстро потому-что слова уже имеют фиксированную длину.