• The only question I have is if you need to keep track of the cards that have been dealt. You wouldn't want a dealer playing a Second Ace of Spades in a later hand if the shuffle should not occurr between each play.

    If that is the case then you may want to store the run in another table during play to keep the shuffle in the current order and so you can mark out of play as they pass or even better place in a cursor (yes on purpose) and proceed thru it until not enough cards remain for new play. Then reshuffle at that point.

    Otherwise I support using the NEWID() becuase there is no random function in SQL that will meet the needs. Technically NEWID() thou is not random but it will change the sequence enough to be far superior to RAND() or going out of your way to write a custom piece of code.