Примерно так же, как строятся классические лабиринты:
1) Разбить круг на окружности и секторы, образуется сетка узловых точек
2) Начинать на любой пустой узловой точке(которая не имеет пересечения с готовым лабиринтом), двигаться в случайном направлении (в пределах сетки).
3) Двигаться пока не упрёшься в стену
4) Перейти на п.2 и повторять пока не останется пустых узловых точек (или по таймауту)
Делал на Pascal в 8м классе игру "Лабиринт" на этом принципе, вполне работало.
PS: запустил этот древний код, вот такие лабиринты строит: