100 PROGRAM "Shuffle.bas" 110 RANDOMIZE 120 NUMERIC ARRAY(1 TO 20) 130 CALL INIT(ARRAY) 140 CALL WRITE(ARRAY) 150 CALL SHUFFLE(ARRAY) 160 CALL WRITE(ARRAY) 170 DEF INIT(REF A) 180 FOR I=LBOUND(A) TO UBOUND(A) 190 LET A(I)=I 200 NEXT 210 END DEF 220 DEF WRITE(REF A) 230 FOR I=LBOUND(A) TO UBOUND(A) 240 PRINT A(I); 250 NEXT 260 PRINT 270 END DEF 280 DEF SHUFFLE(REF A) 290 FOR I=UBOUND(A) TO LBOUND(A) STEP-1 300 LET CARD=RND(UBOUND(A)-LBOUND(A))+LBOUND(A)+1 310 IF CARD<>I THEN LET T=A(CARD):LET A(CARD)=A(I):LET A(I)=T 320 NEXT 330 END DEF