22 lines
418 B
Bash
22 lines
418 B
Bash
# Shuffle array[@].
|
|
function shuffle {
|
|
integer i j t
|
|
|
|
((i = ${#array[@]}))
|
|
while ((i > 1)); do
|
|
((j = RANDOM)) # 0 <= j < 32768
|
|
((j < 32768 % i)) && continue # no modulo bias
|
|
((j %= i)) # 0 <= j < i
|
|
|
|
((i -= 1))
|
|
((t = array[i]))
|
|
((array[i] = array[j]))
|
|
((array[j] = t))
|
|
done
|
|
}
|
|
|
|
# Test program.
|
|
set -A array 11 22 33 44 55 66 77 88 99 110
|
|
shuffle
|
|
echo "${array[@]}"
|