この記事では、スクラッチ(Scratch)の「1~10までの乱数」ブロックの使い方を紹介します。
乱数とは、ある範囲の数値から ランダムに取り出した数値のこと。
「1~10までの乱数」ブロックは、ゲームを作るときなど 使う機会がとても多いブロックです。
という人向け。
かんたんなプログラムを例にあげながら紹介します。
変数とリストが分かる前提で解説します。
変数やリストって何?という人は下の記事を先に読んでくださいね。
また、スクラッチがはじめての人は、下の記事からごらんください。
乱数(らんすう)とは
ゲームなどでは、「バラバラな数を出したい」ときがあります。
- すごろくのサイコロ
- 敵がどこに現れるか
- おみくじ
- カードをシャッフル
こんなときに使うのが乱数です。
乱数は、ある範囲からランダムに選ばれた数字のことです。
ランダムとは、きまりがなく 何が出るか分からないという意味です。
サイコロをふると、「1~6のどれか」が出ますが 何が出るかは分かりません。
これがランダムです。
コンピューターの中には、本物のサイコロはありません。
その代わり、サイコロのようにランダムな数字を作って使っています。
「1~10までの乱数」ブロックの使い方
では、スクラッチで乱数を使ってみましょう。
演算カテゴリにある「1~10までの乱数」ブロックを使います。
1~10の部分に一番小さな数と一番大きな数を入れ、一番小さな数から一番大きな数までの ランダムな数値を作り出します。
例1:1から10の中でランダムな数字を言う
- イベントカテゴリの「このスプライトが押されたとき」を出す。
- 見た目カテゴリの「こんにちは!と2秒言う」を出し、「このスプライトが押されたとき」の下に配置する。
- 演算カテゴリの「1~10までの乱数」を出し、「こんにちは!と2秒言う」のこんにちは!の部分に配置する。
例2:コスチュームをランダムに変える
Ghostのスプライトを使っています。
- イベントカテゴリの「このスプライトが押されたとき」を出す。
- 見た目カテゴリの「コスチュームをghost-dにする」を出し、「このスプライトが押されたとき」の下に配置する。
- 演算カテゴリの「1~10までの乱数」を出し、「コスチュームをghost-dにする」のghost-dの部分に配置する。
- 「1~10までの乱数」を「1~4までの乱数」にする。
例3:ランダムな座標へスプライトを動かす

座標(ざひょう)とは、とある位置を指定するための 数字の組み合わせのことです。
スクラッチでは、ステージ上の位置を x座標(左右)とy座標(上下)2つの座標を使って表します。
座標を乱数にすれば、ランダムな場所に スプライトを表示させることができます。
- イベントカテゴリの「このスプライトが押されたとき」を出す。
- 動きカテゴリの「x座標を0にする」を出し、「このスプライトが押されたとき」の下に配置する。
- 演算カテゴリの「1~10までの乱数」を出し、「x座標を0にする」の0の部分に配置する。
- 「1~10までの乱数」を「-240~240までの乱数」にする。
例4:リストの項目をランダムに参照する
あらかじめリストを作って、項目を10個追加しています。
- イベントカテゴリの「このスプライトが押されたとき」を出す。
- 見た目カテゴリの「こんにちは!と2秒言う」を出し、「このスプライトが押されたとき」の下に配置する。
- 変数カテゴリの「リストの1番目」を出し、「こんにちは!と2秒言う」のこんにちは!の部分に配置する。
- 演算カテゴリの「1~10までの乱数」を出し、「リストの1番目」の1の部分に配置する。
「1~10までの乱数」の10の部分を「リストの長さ」ブロックにすると、リストの項目数に合わせた乱数を作れます。
リストの項目数が変わっても プログラムを直さなくてすみますよ。
重複しない乱数の作り方
クイズの出題やビンゴの番号を出すときなど、ダブらないでランダムに値を1回ずつ出したいときってありますよね。
リストの項目をランダムにならび変え、ならび変えたリストの項目を順番に参照する方法を紹介します。
リストの項目をランダムにならび変える
まずハタが押されたとき、リストの項目をランダムにならび変えます。

- 変数「そえじ」を10(リストの項目数)にする。
- 2-1~2-5を9回くり返す。
2-1.変数「らんすう」を1から「そえじ」までの乱数にする。
2-2.変数「たいひ」をリストの「らんすう」番目にする。
2-3.リストの「らんすう」番目をリストの「そえじ」番目で置きかえる。
2-4.リストの「そえじ」番目を「たいひ」で置きかえる。
2-5.「たいひ」を-1ずつ変える。
- 変数「そえじ」を1にする。
あらかじめリストを作って、表示させたい値を10個追加しています。
変数「そえじ」、「らんすう」、「たいひ」を作ります。役割は下のとおりです。
- そえじ :
(ハタが押されたとき)リストの ならびかわっていない項目の最後を表す。
(このスプライトが押されたとき)リストの項目を順番に表示するときの添字。 - らんすう:取得した乱数を保存。
乱数ブロックは実行するたびに、値が変わってしまうので変数に保存します。 - たいひ :リストの項目を入れかえる時に使う。
一体何をしているのかというと、リストの項目を ランダムに選んで、リストの一番後ろと 入れかえています。
次はランダムに選んだ項目と、リストの後ろから2番目の項目を 入れかえています。
これをくり返して リストの後ろから ランダムな順番にならべかえ、リストの中身をシャッフルします。
最後に変数「そえじ」を1にして、リストの項目を 順番に表示するときの 初期値を設定しておきます。
リストの項目を入れかえる
2-2~2-4で、リストの項目を入れかえています。
リストの項目を入れかえる時は、退避用の変数を用意しましょう。
例:リストの4番目と10番目を入れかえる場合
- 退避用の変数にリストの4番目の値を保存する。
- リストの4番目をリストの10番目の値で置きかえる。
- リストの10番目を退避用の変数の値で置きかえる。
リストの項目を順番に表示する
スプライトが押されたときの処理で、ランダムにならびかえたリストの項目を 順番に表示します。
実行結果
リストの長さが変わっても対応できるバージョン
下のプログラムは、リストの長さがいくつでも対応できるバージョンです。
さっきのプログラムと 見くらべてみてくださいね。
まとめ
スクラッチ(Scratch)の「1~10までの乱数」ブロックの使い方を紹介しました。
乱数とは、ある範囲の数値から、ランダムに取り出した数値のことです。
ゲームや占いなど乱数を使う機会は多いので、ぜひマスターしましょう。













