Generating a Random Number

Overview

random

  • Return:  Returns a random number between 0.0 (inclusive) and 1.0 (exclusive) (ex. 0.738).  

  • Arguments: None

  • Usage: random()

  • Example Usage: When you need to generate a random number.  

  • For example, to generate a number between 5 (inclusive) and 23 (exclusive), you can use (random()*(23 - 5)) + 5.  This will be something like 12.43334.  

  • You can convert that to a whole number by using int((random()*(23 - 5)) + 5).  You can also reference questions instead of directly typing numbers.  

  • Ex. int(random()*(#form/high_num - #form/low_num) + #form/low_num).  

    • The output varies between low_num (inclusive) and high_num (exclusive)

You can generate either a random decimal number (ex. 8.9) or a random integer (ex. 22) using the random() function.  Set the calculate expression of your question to the following:

  1. For a random decimal: start_num + (random() * (end_num - start_num)) For example, to generate random number between 10.3 and 30.9, you can use 10.3 + (random() * (30.9 - 10.3))

  2. For a random integer: start_num + int(random() * (end_num - start_num)) For example, to generate random number between 9 and 22, you can use 9 + int(random() * (22 - 9))

You can also replace start_num and end_num with references to other questions in your form (ex. #form/my_start_range_question).  Please make sure that they are required or have value so that the calculate expression works. 

 

Notes on the random() Function:

  • If random() is used within a calculate or display condition, the value will change and be recalculated many time as the form is filled out

  • To generate a random number once when the form is opened, add a hidden value and then put the random() logic inside the Default Value logic of the hidden value (its in Advanced Section).  

  • If you're using random() to generate or calculate number that is shown to the user, then its best practice to put random() inside of the default value section as described above.