$n=18 //размер массива
UNDEFINE($arr)
LOGCLEAR
//создаем массив
FOR($count=0,$count<$n)
ARRPUSH($ARR,$count+1)
END_CYC
//заполняем массив случайными числами без повторения
FOR($i=0,$i<($n-1))
$j=rnd(1,$n)
$tmp=$arr[$j]
$arr[$j]=$arr[$i]
$arr[$i]=$tmp
END_CYC
// вывод массива
WHILE(ARRSIZE($arr)>0)
LOGWRITE(ARRPOP($arr))
END_CYC
HALT
Хотя в массиве случается попадается непонятный элемент, или просто пустой. Иногда, редко. Но из за этого иногда выдает ошибку выполнения, или в логе будет не число а пусто или загагулина какая-то. Не знаю откуда он берется и как избавится,
Добавлено. Избавился от пустого/странного элемента. Но теперь очень часто выдает ошибку интерпретации на строке $tmp=$arr[$j]. Пока разбираюсь. Хотя в целом оно работает, через раз, когда ошибки нет
Добавлено. Получается избавиться от ошибки если изменить строку
//создаем массив
FOR($count=0,$count<($n+1))
но массив выйдет на 1 больше чем надо