Another way could be:
alias shuffle {
set %deck
var %i = 4
while (%i) {
var %suit = $gettok(H.D.S.C,%i,46)
var %j = 13
while (%j)
var %num = $gettok(1.2.3.4.5.6.7.8.9.10.J.Q.K,%j,46)
var %deck = $addtok(%deck,$+(%suit,%num),46)
dec %j
}
dec %i
}
}
-> results in %deck having all cards

Then use this to draw and remove a card:
alias drawcard {
if (!$numtok(%deck,46)) return ERROR: no cards left!
var %rn = $rand(1,$v1)
var %card = $gettok(%deck,%rn,46)
set %deck $deltok(%deck,%rn,46)
return %card
}

If the length of all items plus the . inbetween them is larger than about 900 characters, it will fail.