DB Classic Snippet (But should work with DBP).
How to deal a pack of cards randomly without dealing any twice.
Rem TDK's Alternative Way To Deal A Pack Of Cards
Set Display Mode 800,600,16
Sync On
CLS RGB(255,255,255)
Randomize Timer()
Hearts$= "AH2H3H4H5H6H7H8H9HTHJHQHKH"
Clubs$= "AC2C3C4C5C6C7C8C9CTCJCQCKC"
Diamonds$="AD2D3D4D5D6D7D8D9DTDJDQDKD"
Spades$= "AS2S3S4S5S6S7S8S9STSJSQSKS"
Pack$=Hearts$+Clubs$+Diamonds$+Spades$
Ink 0,0
Print "Dealing The Whole Pack..."
Print
For N=1 To 52
NextCard=Rnd(Len(Pack$)/2-1)
Card$=Mid$(Pack$,NextCard*2+1)+Mid$(Pack$,NextCard*2+2)
Pack$=Left$(Pack$,NextCard*2)+Right$(Pack$,Len(Pack$)-NextCard*2+2)
If Right$(Card$,1)="H" or Right$(Card$,1)="D"
Ink RGB(255,0,0),0
Else
Ink 0,0
Endif
Print Card$;" ";
Inc Counter
If Counter=13
Print
Counter=0
Endif
Next N
Sync
TDK_Man