Hey Javajack, yes, you can do what you are trying to do, but `ARR AS ADDR OF U8` is an address parameter, not an array parameter. So inside the PROC you use PEEK/POKE with address math instead of ARR[I].
PROC SHUFFLE(ARR AS ADDR OF U8)
VAL AS U8
POKE ARR + 2, 99 ' write 99 to the 2nd index of ARR (3rd element 0 based)
V = PEEK(ARR + 2) ' read it back
ENDPROC
then call that with the address of the array
DECK[51] AS U8 SHUFFLE(ADDR(DECK)) ' or SHUFFLE(&DECK)
Array indexing on an address parameter, like ARR[2] or ARR(2), is not supported currently. I think I would like that too, for now you'd use PEEK/POKE.
For a real shuffle you pass the length too to handle the bounds of the array
SHUFFLEARR ADDR DECK, LEN(DECK)
thanks for the question!