lawson, такой цикл лучше не использовать. Конечно, когда-то он закончится, но он может прокрутиться на месте раз двадцать.Code
local integer max = 3
local integer i
local integer array id
set id[0] = 'Hpal'
set id[1] = 'Hamg'
set id[2] = 'Hmkg'
set id[3] = 'Hblm'
loop
set i = GetRandomInt(0, max)
//Действия с id[i]
exitwhen max == 0
set id[i] = id[max]
set max = max - 1
endloop