Randomizing the answer order in Open edX problems

Writing problem distractors is hard, and it's easy for whoever's coming up with the question to overthink the order they're listed in. This can have the side effect of making your questions become predictable. Consciously or unconsciously, people tend to start putting the correct answers in similar positions in their problems that makes it possible to guess the most likely answer.

Wouldn't it be great if there was a way to completely avoid that problem and randomize the order in which answers appear in problems automatically? That's what we're going to quickly cover in this article. First, we need a problem. If you don't know how to build one of those, check out Adding a problem to your Open edX course. Here's our problem, a nice simple multiple choice:

In order to randomize our problem, all we need to do is add an exclamation mark (!) to our first answer:

If we hit save here, we're already good to go! The order of responses to this problem would appear randomly for every learner:

There's no indication to the learner that this is not the order these options were entered in, but there's zero risk of the order in which they appear impacting the potential correctness of our answer.

But there's one more trick - to lock an option in place so that it's not shuffled, we can simply add a @ in the position of the answer to lock it in place. This can be useful for an "all of the above" option that always appears at the bottom:

If you'd like to lock the answer in place, you can include both symbols by listing them in the parentheses, like this: (@x).

This feature helps to mitigate cheating, unintended bias towards certain options being correct and generally helping to win the arms race that is keeping up with dishonest people trying to answer your questions without learning the content. Good luck out there!