Сори. Забыл пояснить одну деталь.
Используется что бы вычесть из random "0" который не нужен и не будет использоваться, таким образом оставив только 1-15.
Если смотреть на код поочередно то можно заметить что в начале было записано в 15 переменных 1
Код:
for i:=1 to 15 do
New[i]:=1;
Последующим образом должна была происходить подобная схема.
Если генерированное число (тоисть номер переменной) равняется 1 значит такого числа еще не было и мы его добавим в список и запишем в переменную 0 что это чило уже используется. Ну и так далее.
Друго-го я как-то не смог придумать...