Randomizing Lists or Questions within Groups

Hi Everyone!
Does anybody know how to do list & question randomization--the ability to randomize both the multi choices and the certain set of question within a group?

There are two different features, neither of which are currently supported in a native way.

You may be interested in the form described here for a possible approach to randomizing choice order using a choice filter. Be sure to read follow-up comments and update the form syntax accordingly if you want to try it.

This thread describes a similar approach for randomizing question order within a group. Here is a form implementing this.

Randomizing of both choice lists and questions are likely good features to support at the form-level in a more native way.

For people who would like these features, it would be helpful to know:

  • what is your use case? The more detail you can provide, the more likely it is the features will match your needs!
  • how you would expect to specify that options or questions should be randomized when building a form?
  • would you expect to know the order the options were presented in? If so, in what format would you like that information?

The most promising progress in this direction is @martijnr's proposal of a randomize() function to add to the form specification. This proposal was preceded by this conversation.

For inspiration: Blaize, Snap Surveys.

even though a bit outdated here a response to your question hoe as I as a user need to randomise:

  • to create a randomised control trial design within a survey. So that I can show some participants a particular stimuli and others a different one. This works well with once() & random()
  • I mostly need it to shuffle items in a field list. For example items measuring several different dimension of an attitude, where I really want to avoid bias through the order of the items.

As of Collect v1.16.0 and the July XLSForm releases, it is now possible to shuffle items in a select as described in the documentation for the select type

@colonus Thanks for sharing your use case! Do you need to know what order the questions were displayed in to the user? Do you have any expectation as to how you would specify that the question order should be randomized when building a form?

Thanks @LN this is great.
For me it is however often more important to shuffle the items/questions order not the answer options/choices. For example if I ask participants how much they agree with the following items like "Politicians should work harder to stop corruption" and "Our political system is facilitating unequality" (5-Likert Skale in a Matrix-Type/field-lit question: Strongly Agree | Agree | Neither Agree nor Agree | Dissagree| Strongla Dissagree). The order of the items/questions could influence the response. Through randomising the order I can minimise a bias.
In this case I do not need to be able to track the order. So far my workaround is to create several groups with different manually created orders of the same questions and then display them depending on a random number that I create with once(int(n*random())+1). But in that way I am limited to n numbers of groups and my XLS-Form becomes quiet messy.
A great way would be to have a function that can shuffle an array of numbers. Depending on the shuffled array one could then display the items (or by placeholder questions that are then pulled from a *.csv). In that way I can control the content that is shuffeled (could also work for non-numbers) and it is up to me whether I want to safe the shuffeled array (in case I need this information)


I am having the exact same Problem.
Did you find a solution?

Kind regards