Пока что дапер тока до этого,
Убераем все лишние числа рандом, далее пробежатся по массиву, и если можна пройти, то готово, иначе заново рандом убираем и т.д., типа рекурсии, единственное что беспокоит что скрипт может сгенерировать за 0.00xx а может и за 20.ххх, тоесть все от случая зависит, вот и интересно есть ли более оптимальные варианты?