<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:random="http://exslt.org/random" exclude-result-prefixes="random">
<xsl:template match="/">
10 random numbers:
<xsl:for-each select="random:random-sequence(10)">
<xsl:value-of select="format-number(., '##0.000')"/>
<xsl:if test="position() != last()">,
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
The result is
10 random numbers:
0.311,
0.398,
0.698,
0.929,
0.418,
0.523,
0.667,
0.215,
0.915,
0.007
The function accepts optional number of random numbers (1 by default) to generate and optional seed (DateTime.Now.Ticks by default) and returns nodeset of <random> elements, each one containing generated random number.
EXSLT.NET team members are encouraged to review my implementation in the projects's source repository and if nobody objects we can release EXSLT.NET 1.1 version.