You can randomize it by again looping through the lines and moving them to a hidden window, then filtering that window to the dialog list:
alias loop {
if ($window(@Loop)) { window -c @Loop }
window -h @Loop
var %r,%x = 9999
while (%x) {
%r = $r(1,$did(loop,1).lines)
echo @Loop $did(loop,1,%r)
did -d loop 1 %r
dec %x
}
filter -cwo @Loop loop 1
}
Ensure that in your options you allow at least 9999 lines for a buffer capacity so the custom window can hold all the lines of the dialog list