Я когда-то писал алгоритм для генерации благозвучных легкогенерируемых паролей. Для этого я просто посчитал, с какой вероятностью за одной буквой будет следовать другая, анализируя, например, "Властелин Колец", далее я просто брал случайную первую букву и прибавлял к ней с учётом вероятности следующую и так далее, получались пароли вроде (возьмём в качестве длины 12 букв):
leeditedildo
rsiecayweeyo
qugendsivour
yandaskithee
kehefothevou
Вот код на C:
https://github.com/ginz/getpass
Его можно легко переписать/приспособить к PHP.