MODULE Shuffle EXPORTS Main; IMPORT IO, Fmt, Random; VAR a := ARRAY [0..9] OF INTEGER {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; PROCEDURE Shuffle(VAR a: ARRAY OF INTEGER) = VAR temp: INTEGER; n: INTEGER := NUMBER(a); BEGIN WITH rand = NEW(Random.Default).init() DO WHILE n > 1 DO WITH k = rand.integer(0, n - 1) DO DEC(n); temp := a[n]; a[n] := a[k]; a[k] := temp; END; END; END; END Shuffle; BEGIN Shuffle(a); FOR i := FIRST(a) TO LAST(a) DO IO.Put(Fmt.Int(a[i]) & " "); END; IO.Put("\n"); END Shuffle.