Метод Джоэля в порядке (за исключением переменной целочисленного цикла и использования «+» для конкатенации). (-:
Однако вывод можно сделать более интересным несколькими способами.
Во-первых, вы можете генерировать строки, которые имеют такое же приблизительное частотное распределение, что и обычный английский текст, создавая начальную строку с гораздо большим количеством символов Ee и Tt, чем символов Zz. Строка из 1000 символов (вдвое больше, чем в смешанном регистре) в , это приблизительное сочетание будет работать нормально.
Добавьте в равных числах 0,9 символа в любом соотношении, которое вы хотели бы видеть в конечном выводе. Вы также можете перетасовать эту строку, чтобы она выглядела более случайной, но это не имеет значения.
Затем используйте случайный селектор в диапазоне 1..Len (начальная строка), чтобы выбрать каждый символ, как в примере Джоэла.
Зачем это? Нет веской причины, за исключением того, что результаты будут выглядеть более знакомыми.
Второй вариант - сгенерировать две такие начальные строки, одну из согласных по массе корпуса, а другую с гласными в том же весе (больше Е, чем О, чем, и т. Д.). Я бы использовал только один случай, а не смешанный случай.
Затем чередуйте два случайных выбора, сначала из согласных, затем из гласных, чтобы генерировать орграфы, такие как TI, WO, DE и так далее. Объедините их в цепочку, чтобы сформировать «слова».
Поскольку полученный результат можно произносить, его гораздо легче запомнить. Плюс, это выглядит до жути японским. (-:
Наша библиотека Stamina (функции ASM для VB / VBA) содержит подпрограммы, которые делают это, но в чистом VB это достаточно просто.