カテゴリ: Javaのユーティリティクラス 更新日: 2026/09/03

JavaのRandomクラスの使い方を完全ガイド!初心者でもわかる乱数生成

378
Java の Random クラスを使ってランダムな数値を生成する方法

先生と生徒の会話形式で理解しよう

生徒

「Javaで毎回違う数字を出したいときって、どうすればいいんですか?」

先生

「そのような場合は、JavaのRandomクラスを使ってランダムな数値、つまり乱数を生成します。」

生徒

「乱数って、ゲームとかで使うイメージがあります。」

先生

「その通りです。ゲームだけでなく、抽選処理やテストデータの作成など、さまざまな場面で使われます。」

生徒

「初心者でも簡単に使えますか?」

先生

「基本を押さえれば難しくありません。では、Randomクラスの使い方を順番に見ていきましょう。」

1. JavaのRandomクラスとは?

1. JavaのRandomクラスとは?
1. JavaのRandomクラスとは?

JavaのRandomクラスは、ランダムな数値を生成するためのユーティリティクラスです。 プログラムを実行するたびに異なる値を生成できるため、予測できない動きを作りたいときに利用されます。 Java初心者が最初に触れる乱数生成の方法として、非常に定番のクラスです。

Randomクラスはjava.utilパッケージに含まれており、利用する際にはimport文を記述します。 数値の種類としては、整数、小数、真偽値などを生成できるため、幅広い用途に対応しています。

2. なぜRandomクラスが必要なのか

2. なぜRandomクラスが必要なのか
2. なぜRandomクラスが必要なのか

プログラムの中で常に同じ値を使っていると、処理結果も毎回同じになります。 しかし、ゲームの敵の動きや、抽選結果、サンプルデータの作成などでは、毎回異なる結果が必要です。 そのようなときに、Randomクラスを使ってランダムな数値を生成します。

JavaのRandomクラスを使うことで、決まった範囲内でランダムな数値を簡単に作ることができます。 これは初心者にとって、プログラムの表現力を一気に広げてくれる重要なポイントです。

3. Randomクラスの基本的な使い方

3. Randomクラスの基本的な使い方
3. Randomクラスの基本的な使い方

Randomクラスを使うには、まずインスタンスを作成します。 そのインスタンスを通して、ランダムな数値を取得します。 流れとしてはとてもシンプルで、オブジェクト指向の基本練習にもなります。


import java.util.Random;

public class RandomBasicExample {
    public static void main(String[] args) {
        Random random = new Random();
        int number = random.nextInt();
        System.out.println(number);
    }
}

-123456789

このように、nextIntメソッドを使うことで整数の乱数を生成できます。 実行するたびに異なる値が表示されるため、ランダム性を確認できます。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第5版をAmazonで見る

※ Amazon広告リンク

4. 範囲を指定してランダムな数値を生成する

4. 範囲を指定してランダムな数値を生成する
4. 範囲を指定してランダムな数値を生成する

実際の開発では、無制限な数値よりも「〇から〇まで」といった範囲指定が必要になることが多いです。 Randomクラスでは、引数を指定することで数値の範囲を制御できます。 これはJava初心者が必ず覚えておきたい使い方です。


import java.util.Random;

public class RandomRangeExample {
    public static void main(String[] args) {
        Random random = new Random();
        int number = random.nextInt(10);
        System.out.println(number);
    }
}

7

この場合、生成される数値は0以上10未満になります。 範囲指定の考え方は、配列やリストと組み合わせる場面でも頻繁に使われます。

5. 小数のランダムな数値を生成する方法

5. 小数のランダムな数値を生成する方法
5. 小数のランダムな数値を生成する方法

Randomクラスでは、整数だけでなく小数の乱数も生成できます。 小数の乱数は、確率計算や割合の処理などで活躍します。 Javaの基礎文法と合わせて理解しておくと便利です。


import java.util.Random;

public class RandomDoubleExample {
    public static void main(String[] args) {
        Random random = new Random();
        double value = random.nextDouble();
        System.out.println(value);
    }
}

0.483920123

生成される小数は0以上1未満の範囲になります。 この特徴を理解しておくと、計算処理に応用しやすくなります。

6. Randomクラスを使う際の注意点

6. Randomクラスを使う際の注意点
6. Randomクラスを使う際の注意点

Randomクラスは非常に便利ですが、完全に予測不能な数値を生成しているわけではありません。 内部的には一定のルールに基づいて乱数を作っています。 そのため、セキュリティ目的の処理には別のクラスを使う必要があります。

ただし、学習用や一般的なアプリケーション、ゲーム、テストデータの作成ではRandomクラスで十分です。 Java初心者は、まずこのクラスを使いこなせるようになることが大切です。

Randomクラスを理解することで、Javaのプログラムに動きや変化を加えることができます。 乱数生成は、プログラミングの楽しさを実感できる重要な要素のひとつです。

まとめ

まとめ
まとめ

JavaのRandomクラスは、Java初心者が最初に学ぶ乱数生成の方法として非常に重要なクラスです。プログラムを実行するたびに異なる値を生成できるため、ゲーム開発や抽選システム、サンプルデータ作成、テストデータ生成など幅広い場面で活用されています。

Randomクラスを利用することで、ランダムな整数や小数、真偽値などを簡単に生成できます。特にnextIntメソッドは実務でも利用される機会が多く、指定した範囲の数値を生成できるため、Javaプログラミングの基礎学習では必須の知識といえるでしょう。

Javaで乱数を扱う場合は、まずRandomクラスのインスタンスを生成し、そのオブジェクトから各種メソッドを呼び出して値を取得します。この考え方はオブジェクト指向の基本理解にもつながるため、単純に乱数生成の方法を覚えるだけではなく、クラスとオブジェクトの関係も意識しながら学習することが大切です。

また、RandomクラスのnextIntメソッドは引数なしでも利用できますが、実際の開発現場では引数を指定して利用することが一般的です。例えば、サイコロの目を表現したい場合や、商品の表示順をランダムにしたい場合、ランキングをランダム表示したい場合など、特定の範囲内で数値を生成するケースが多くあります。

JavaのRandomクラスを理解すると、配列やArrayListと組み合わせた処理も実装できるようになります。例えば、配列の中からランダムに要素を取り出したり、ランダムな問題を出題するクイズシステムを作成したりできます。こうした機能はプログラミング学習のモチベーション向上にもつながるため、初心者にとって非常におすすめの練習テーマです。

さらに、JavaのRandomクラスはゲーム開発との相性も非常に良いです。敵キャラクターの行動をランダムにしたり、宝箱から出現するアイテムをランダムにしたり、ダメージ量を変動させたりといった実装が可能になります。乱数を活用することで毎回異なる結果が得られるため、プログラムに変化や面白さを加えることができます。

一方で、Randomクラスはセキュリティ用途には向いていません。パスワード生成や認証トークン生成など、高い安全性が求められる処理では専用のクラスを利用する必要があります。しかし、学習用プログラムや一般的な業務システム、ゲーム開発、抽選機能などでは十分活用できます。

JavaのRandomクラスを学習する際は、まずnextIntで整数乱数を生成し、その後nextDoubleによる小数乱数、nextBooleanによる真偽値の取得などへ学習範囲を広げると理解しやすくなります。段階的に学習することで、乱数生成の仕組みや利用方法を無理なく身につけられます。

実務ではランダム表示機能、ランダム抽選機能、サンプルデータ生成機能、テストデータ作成機能などでRandomクラスが利用されることがあります。また、アルゴリズム学習やプログラミング演習においても頻繁に登場するため、Java資格試験やJava研修でもよく扱われるテーマです。

RandomクラスはJava標準ライブラリに含まれているため追加ライブラリは不要です。import文を記述するだけで利用できるため、初心者でもすぐに試すことができます。実際にプログラムを書いて何度も実行し、毎回異なる値が表示されることを確認すると理解が深まります。

JavaのRandomクラスを使いこなせるようになると、単なる固定値だけのプログラムから一歩進んだ実践的なプログラムを作成できるようになります。プログラミング学習では、動きのあるプログラムを作ることで理解が深まりやすくなるため、ぜひさまざまなサンプルを作成しながら練習してみてください。

Randomクラスの総合サンプルプログラム

最後に、整数乱数、小数乱数、真偽値の乱数をまとめて取得するサンプルプログラムを確認してみましょう。


import java.util.Random;

public class RandomSummaryExample {
    public static void main(String[] args) {

        Random random = new Random();

        int number = random.nextInt(100);

        double value = random.nextDouble();

        boolean flag = random.nextBoolean();

        System.out.println("整数乱数:" + number);
        System.out.println("小数乱数:" + value);
        System.out.println("真偽値:" + flag);
    }
}

整数乱数:57
小数乱数:0.384927156
真偽値:true

このようにRandomクラスにはさまざまなメソッドが用意されています。Java初心者はまず整数乱数の生成方法を理解し、その後に小数や真偽値の取得方法を学習すると効率良く理解できます。

先生と生徒の振り返り会話

生徒

「JavaのRandomクラスについて学習してみましたが、乱数生成って思ったより簡単なんですね。」

先生

「そうですね。RandomクラスはJava初心者でも扱いやすく、ゲーム開発や抽選システムなどでよく利用されます。」

生徒

「nextIntを使えばランダムな整数を取得できることが分かりました。」

先生

「その通りです。特にnextIntの引数を利用した範囲指定は非常に重要です。」

生徒

「〇から〇までの数字をランダムに取得する処理はよく使いそうですね。」

先生

「実務でもよく使います。ランダム表示機能や抽選機能などで活躍します。」

生徒

「nextDoubleを使うと小数の乱数も取得できるんですよね。」

先生

「はい。確率計算や割合計算などで利用されることがあります。」

生徒

「ゲーム開発でも利用される理由が分かりました。」

先生

「敵の行動パターンやアイテム出現率など、さまざまな場所で利用できます。」

生徒

「配列やArrayListと組み合わせるとさらに便利そうですね。」

先生

「その理解はとても良いですね。ランダム出題機能やランダム表示機能などが作れるようになります。」

生徒

「JavaのRandomクラスはプログラミング初心者でも早めに覚えたほうが良さそうですね。」

先生

「その通りです。Javaの乱数生成はさまざまな場面で登場しますので、ぜひサンプルプログラムを繰り返し実行して理解を深めてください。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

JavaでRandomクラスを使うためには何をimportすればいいですか?

Randomクラスはjava.utilパッケージに含まれているため、Javaでランダムな数値を生成する場合はimport java.util.Random;を記述します。

RandomクラスとMath.random()の違いは何ですか?

Math.random()は簡単な小数の乱数生成に使えますが、Randomクラスは整数や小数、真偽値など幅広い乱数を生成でき、オブジェクト指向の練習にもなります。
Javaのユーティリティクラスの一覧へ
新着記事
Flutter
FlutterでWebアプリをビルドする方法と注意点
FlutterでWebアプリをビルドする方法と注意点を徹底解説【初心者向け】
Flutter
Flutter Web開発の始め方!環境構築と基本の流れ
Flutter Web開発の始め方を完全ガイド!初心者でもわかる環境構築と基本の流れ
Flutter
FlutterのInheritedWidgetとは?仕組みと活用方法
FlutterのInheritedWidgetとは?仕組みと活用方法を初心者向けにやさしく解説
Flutter
Blocパターンの仕組みと導入方法をわかりやすく解説
FlutterのBlocパターンを完全ガイド!初心者でもわかる状態管理と導入方法
人気記事
Flutter
Flutterの開発に必要なもの!パソコン・ツール・OSなど準備まとめ
Flutterの開発に必要なもの!パソコン・ツール・OSなど準備まとめ
Java
Java の Random クラスを使ってランダムな数値を生成する方法
JavaのRandomクラスの使い方を完全ガイド!初心者でもわかる乱数生成
Java
Java の getter メソッドと setter メソッドの使い方
Javaのgetterメソッドとsetterメソッドの使い方を完全ガイド!初心者でもわかるアクセス方法
AWS
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク