Если вы делаете это для чего-нибудь Microsoft, я обнаружил, что с помощью функции XSLT ddwrt: Random работает.
Я использую следующее для создания случайного числа
<xsl:variable name="RowCount" select="count($Rows)" />
<xsl:variable name="RandomNumber" select="ddwrt:Random(1, $RowCount)" />
и следующие до настоящего времени
<xsl:for-each select="$Rows[position() = $RandomNumber]">
<xsl:value-of select="@Title" /></xsl:for-each>