Uses a Result Tree Fragment (RTF) via a nodeset to generate a random value. Also uses random from the math exslt library.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exslt="http://exslt.org/common"
xmlns:math="http://exslt.org/math"
extension-element-prefixes="math"
>
<xsl:template match="/">
<!-- result tree fragment -->
<xsl:variable name="nodeSetExample">
<itemList>
<item id="1">one</item>
<item id="2">two</item>
<item id="3">three</item>
<item id="4">four</item>
</itemList>
</xsl:variable>
<!-- Generate random number -->
<xsl:variable name="randomNumber" select="(floor(math:random()*4) mod 4) + 1" />
<xsl:value-of select="exslt:node-set($nodeSetExample)/itemList/item[$randomNumber]/text()"/>
</xsl:template>
</xsl:stylesheet>