★うめじ英語塾 お問い合わせフォーム★

Googleフォームのクイズで選択肢の順番をランダムにする方法

Googleフォームのクイズで選択肢の順番をランダムにする方法

うめじ英語塾のブログですが、今日(2021年9月29日)は、Google フォームに関する内容です。先日(9月22日)解明するのに時間がかかったことについて、誰かのお役に立てるのではないかと思い、まとめてみました。

Jason Jurotich さんが書かれた Google App Script (GAS) を使って、Google フォームのクイズの選択肢の順番をランダムにしたい場合は、元のスクリプトに数行追加するだけでOKです。

Jason Jurotich さんは、Google スプレッドシートから Google フォームを作成する方法をビデオで紹介されています。詳細については、以下のリンクから動画のチュートリアルをご覧ください。
リンク:NEW GAS TO CREATE FORMS FROM SHEETS WITH TEMPLATE – YouTube

Jason Jurotich さんのGASは、以下のリンクから入手できます。
リンク:JJ-GAS/formFromSheetComplete.gs at master ・ jasonjurotich/JJ-GAS ・ GitHub

このスクリプトを使うと、正解を緑色で指定した選択肢問題を簡単に書くことができます(動画チュートリアル 8:15 参照)。

しかし、わたしがやりたかったのは、正解の選択肢を常に同じ列(I列)に書き、一気に緑色に塗り、後から次の列に誤った選択肢を書くというものでした。

この方法のちょっとした問題点は、フォームを作成したときに、最初の選択肢が常に正しいものになってしまうことです。

そのため、フォーム作成時に正解の位置を自動的にランダム化するために、数行追加してみました。わたしと同じ問題で困っていらっしゃったら、元の GAS の119行目の後に以下の行を追加するだけです。

for (let i = arr.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[arr[i], arr[j]] = [arr[j], arr[i]];
}

つまり、次のようになります。

以下のリンクをクリックすると、フォームのサンプルが表示されます。
リンク:サンプルテスト

すでにフォームを作成していて、あとでオプションをランダム化したい場合は、質問をクリックし、[必須]の隣にある3つのドットのアイコンをクリックし、[選択肢の順序をシャッフルする]をクリックするとできますよ。
リンク:質問と回答をランダムに並べ替える – Google Workspace ラーニング センター

★★★★以下は、英語版です。★★★★

If you want to randomize the option order on Google form quizzes, using the Google App Script (GAS) written by Jason Jurotich, you can simply add a couple of lines to the original script.

Jason Jurotich outlines in his video how to create Google forms from Google spreadsheets. For further information, please watch his video tutorial at the following link:
Link: NEW GAS TO CREATE FORMS FROM SHEETS WITH TEMPLATE – YouTube

You can get the original GAS that Jason Jurotich wrote at the following link:
Link: JJ-GAS/formFromSheetComplete.gs at master ・ jasonjurotich/JJ-GAS ・ GitHub

Using his script, you can write multiple choice questions with ease, with the correct answers specified by the color green (Video Tutorial at 8:15).

What I wanted to do, however, was to write the correct options always in the same column (Column I), painting them green in one stroke, and write distractors later in the following columns.

A minor issue with this method is that the first options will always be the correct ones, when forms are created.

Thus, I added a few more lines to automatically randomize the locations of the correct answers. If your problem is the same as mine, simply add the following lines after line 119 in the original GAS.

for (let i = arr.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[arr[i], arr[j]] = [arr[j], arr[i]];
}

So, it would look like this:

Click the link below to see a sample form I created.
Link: Sample Quiz

If you have already created a form and would like to randomize the options now, all you need to do is click a question, click the three vertical dots for More next to Required, and then click Shuffle option order.
Link: Randomize questions and answers – Google Workspace Learning Center