Making the limit of the random number depend on the values earned. | XM Community
Solved

Making the limit of the random number depend on the values earned.

  • 24 June 2021
  • 2 replies
  • 26 views

I'm trying to make a lottery where the probability of winning is dependent on how a participant does during the survey. As a result I want to make a random number where the upper limit is based on a variable within the survey. I saw the below previous discussion that suggested "nesting" embedded data was not possible.
https://community.qualtrics.com/XMcommunity/discussion/6968/displaying-a-random-number-within-question-and-choice-options-using-javascriptThis would suggest I can't make a random number where the upper limit is based on how well the participant did. I had been planning to use the below coding.

RandomNumber = ${rand://int/ 1 : e://Field/VariableName}
If RandomNumber < Variable2 then
Win the Lottery
If RandomNumber ≥ Variable2 then
Lose the Lottery.

Can anyone help me to figure out how to code this. The only way I can think of would be to manually make a lot of if Random number = 1, If random number = 2 etc to manually code it but I thought there might be a faster way. Any help is appreciated.
Thank You

icon

Best answer by ahmedA 25 June 2021, 01:37

View original

2 replies

Userlevel 7
Badge +21

You'll need to use JS for this.

  1. Create an ED (let's call it
    UpperBound
    ) and store the value of the upper limit in it.

  2. Then, in any question before the random number is required and after the UpperBound value has been stored, add the following JS:

Qualtrics.SurveyEngine.addOnReady(function () {
    let random_number = Math.random() * Number("${e://Field/UpperBound}");
    Qualtrics.SurveyEngine.setEmbeddedData("RandomNumber", random_number);
});
You can then use this
RandomNumber 
ED, just like any other.

Does anyone know how to make the Qualtrics remember the Random Number generated so I can test if this value is less than a number? Thank You Ahmed for generating the random number that is brilliant but I also need help on the second part because I can't seem to make this work.
Thank You

Leave a Reply