Тут код и рандомим один за другим символы в REGEX-маске. До тех пор, пока не будет пустой возврат.
Из предыдущей выборки - берём случайный вариант.
НО! Лучше - это делать через файл-список (который содержит уже весь dirlist).
Это сэкономит операции на чтение с диска и продлит срок его службы.
PS: Подсказка!: файл dirlist можно читать
сразу со случайного места! и смещаться на начало строки!