Я создатель Wordle. Вот как на самом деле работает Wordle:
Считайте слова, выбрасывайте скучные слова и сортируйте по количеству по убыванию. Оставьте верхние N слов для некоторого N. Назначьте каждому слову размер шрифта, пропорциональный его количеству. Сгенерируйте форму Java2D для каждого слова, используя API Java2D.
Каждое слово "хочет" быть где-то, например, "в некоторой случайной позиции х в вертикальном центре". В порядке убывания частоты делайте это для каждого слова:
place the word where it wants to be
while it intersects any of the previously placed words
move it one step along an ever-increasing spiral
Вот и все. hard - это эффективное тестирование пересечений, для которого я использую кэширование последнего попадания, иерархические ограничивающие рамки и пространственный индекс квадродерева (обо всем этом можно узнать с некоторой прилежностью прибегая к помощи).
Редактировать: Как отметил Рето Эберсольд, теперь есть свободно доступная глава книги, охватывающая эту же территорию: Прекрасная визуализация, Глава 3: Wordle