The following two calculations can be used to generate pseudo-random numbers in Tableau. This works even when using extracts, unlike RAWSQL techniques.
The calculation is a table calc, so random values can be assigned to any level of detail based on the addressing. The main limitation is that, as a table calc, it can not be used to partition the view.
((PREVIOUS_VALUE(MIN([Seed])) * 1140671485 + 12820163) % (2^24))
INT([Random Number] / (2^24) * [Random Upper Limit]) + 1
In the calculations above, [Seed] could be
- A hard-coded value to give a consistent series of pseudo- random numbers
- A parameterized value to allow the end-user to change the value or a URL to control the value
- A randomized seed to give a different set of random numbers each time the data is refreshed.
[Random Upper Limit] is a parameterized upper limit for the calculation. The Random Int function here gives a random integer from 1 to the upper limit. Variations of the Random Int calculation could adjust the range or return floats.
A possibility for randomizing the Seed:
(DATEPART('second', NOW()) + 1) * (DATEPART('minute', NOW()) + 1) * (DATEPART('hour', NOW()) + 1) * (DATEPART('day', NOW()) + 1)
More details are available here: http://vizpainter.com/random-numbers-even-with-extracts/