Randomisation works on levels, which means that you can have multiple randomisation codes depending on what you want to randomise. The same examples shown below can also be applied to questions.
Examples of answer randomisation can be found in this survey.
Examples of question randomisation can be found in this survey.
For example, if you wanted to randomise only a set of answers, then you would add "r" as there is only one level of randomisation.

If you wanted to have randomisation of blocks and asnwers within blocks, then we are dealing with 2 layers.
When defining "Rr" (remember case does not matter here), we are essentially saying "randomise the block 1-4 & randomise the answers within that block".
The subsequent "*r" means we are continuing the same block rotation and then randomising the answers within that block. The use of "*" is important as it is a sign to continue the randomisation sequnce and not to start a new one. This way the blocks are randomised together.

In the example below, much like the above example, we have two blocks. This time, by adding "Rn" we are saying "randomise the block but do not randomise the answers 1-4 within it".
5-10 are still randomised as a block, but also within the block.

Here we have more complex randomisation as we have answers that should stay fixed even within the blocks.
1-4: 1-3 randomized and 4 is static
5,6 come together
7,8 come together
9,10 come together
For 1-4, because we have an additional requirement of a static answer within the block, we need to add another layer: "Rnr".
This translates to : "randomise the block, do not randomise the answers, randomise the answers".
The middle part of this is required to allow the final code to remain static.
