To deal a deck of cards:
<xsl:for-each select="random(1 to 52)">
...
</xsl:for-each>
But wouldn't you need to ensure that:
random(1 to 52)
always gave the same result (within a particular transformation)?
Which would mean that if you "randomly" shuffled two decks of cards,
they'd come out in exactly the same order. Not much fun if you go
first when playing snap ;)
It would be sufficient to get a number representing let's say the current
time and use it as a seed.
For an XSLT implementation of a randomised node-set do have a look at:
http://sources.redhat.com/ml/xsl-list/2002-05/msg00182.html
=====
Cheers,
Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list