program knuth_shuffle; setrandom(0); array := [1..10]; print("Before shuffling:", array); shuffle(array); print("After shuffling: ", array); proc shuffle(rw tup); loop for i in [1..#tup-1] do j := random [i+1..#tup]; [tup(i), tup(j)] := [tup(j), tup(i)]; end loop; end proc; end program;