Likert block in random order
Present a block of likert questions in a fresh random order per participant, with the answer options in a fixed order.
When to use it
Section titled “When to use it”Use this for questionnaire blocks where a fixed item order could colour the answers, as when early statements set a frame that later ones are judged against. The obvious fix of shuffling every row goes wrong, because a plain shuffle does not respect page structure and will happily bury the instructions among the questions. Anchoring the instructions and shuffling only the question rows gives each participant a fresh order on an intact page. If the items share one scale and should read as a compact grid, use a matrix question instead of separate rows.
Trial file
Section titled “Trial file”| type | content | head | responseType | responseOptions | random | button1 |
|---|---|---|---|---|---|---|
| instructions | Rate how much you agree with each statement. | NEXT | ||||
| form | I enjoy meeting new people. | likert | Strongly disagree;Disagree;Neutral;Agree;Strongly agree | 1 | ||
| form | I prefer quiet evenings at home. | likert | Strongly disagree;Disagree;Neutral;Agree;Strongly agree | 1 | ||
| form | I feel energised after social events. | likert | Strongly disagree;Disagree;Neutral;Agree;Strongly agree | 1 | ||
| form | I find it easy to start conversations. | likert | Strongly disagree;Disagree;Neutral;Agree;Strongly agree | 1 | ||
| form | I avoid large gatherings when I can. | likert | Strongly disagree;Disagree;Neutral;Agree;Strongly agree | 1 |
type,content,head,responseType,responseOptions,random,button1 instructions,Rate how much you agree with each statement.,,,,,NEXT form,,I enjoy meeting new people.,likert,Strongly disagree;Disagree;Neutral;Agree;Strongly agree,1, form,,I prefer quiet evenings at home.,likert,Strongly disagree;Disagree;Neutral;Agree;Strongly agree,1, form,,I feel energised after social events.,likert,Strongly disagree;Disagree;Neutral;Agree;Strongly agree,1, form,,I find it easy to start conversations.,likert,Strongly disagree;Disagree;Neutral;Agree;Strongly agree,1, form,,I avoid large gatherings when I can.,likert,Strongly disagree;Disagree;Neutral;Agree;Strongly agree,1,
How it works
Section titled “How it works”Each statement is one type=form row: head carries the statement, responseType set to likert renders rating buttons, and responseOptions supplies the scale labels (the button count comes from the number of labels). Because the form rows are consecutive, they all render on one survey page.
random set to 1 on every question row shuffles those rows into a fresh order for each participant. The instructions row’s random cell is left genuinely empty, which anchors it in place: an empty cell is a run boundary, so the shuffle run only spans the question rows. Do not put a value on the instructions row, because the plain shuffle does not break at type changes and the instructions screen would be shuffled in among the questions. After shuffling, the question rows are still consecutive in presentation order, so they still group onto a single page.
The options order stays fixed simply because responseOptionsRandom is not used; responseOptions displays in written order by default.
Two silent traps to know about. random treats any non-empty value as “shuffle”, so 0 does not mean off, only an empty cell does. And responseType values are matched case-sensitively: Likert renders a display-only text row with nothing to answer, without any warning.
Variations
Section titled “Variations”- Shuffle the answer options too by adding
responseOptionsRandomwith1on the question rows;responseCodein the results still counts positions in the order written inresponseOptions. - Present a random subset by moving the group to
trialOrder, the column sampling specs live in. A file cannot userandomandtrialOrderat once, so the group moves rather than gains a second column:1: shuffleintrialOrderis exactly the plain shuffle above, and1: sample 3keeps 3 of the 5 statements instead. Write the spec on any one row of the group (each group takes exactly one spec row) and the bare tag1on the others. - Split the block into two independently shuffled sets by giving the second set a different
randomtag (2); adjacent runs with different values shuffle separately. - Force an answer to every statement by adding
requiredwith1on the question rows.