カテゴリ: Java 更新日: 2025/11/23

JavaのRandomのnextInt メソッドの使い方を完全ガイド!初心者でもわかる乱数生成

Random のnextInt メソッド
Random のnextInt メソッド

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

生徒

「Javaでランダムな数を生成する方法ってありますか?」

先生

「Javaでは、Randomクラスを使うことで簡単に乱数を生成できますよ。」

生徒

「そのRandomクラスってどう使うんですか?」

先生

「それでは、Randomクラスの基本的な使い方を見ていきましょう!」

1. Randomクラスとは?

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

JavaのRandomクラスは、乱数(ランダムな数値)を生成するためのクラスです。例えば、サイコロの目をランダムに出したり、ゲーム内でランダムなイベントを発生させたりするときに使います。Randomクラスはjava.utilパッケージに含まれているので、利用する際はimport文が必要です。


import java.util.Random;

これでRandomクラスが使えるようになります。

2. nextIntメソッドで整数の乱数を生成する

2. nextIntメソッドで整数の乱数を生成する
2. nextIntメソッドで整数の乱数を生成する

Randomクラスの中でよく使われるメソッドがnextInt()です。このメソッドを使うことで、指定された範囲の整数の乱数を簡単に生成できます。

まずは基本的な使い方から見てみましょう。


public class RandomExample {
    public static void main(String[] args) {
        Random random = new Random();
        int randomNumber = random.nextInt();
        System.out.println("ランダムな整数: " + randomNumber);
    }
}

実行結果


ランダムな整数: 123456789

このプログラムでは、nextInt()メソッドを使って、範囲を指定せずに乱数を生成しています。そのため、生成される乱数は負の数も含むあらゆる整数です。

3. nextInt(int bound)メソッドで範囲を指定する

3. nextInt(int bound)メソッドで範囲を指定する
3. nextInt(int bound)メソッドで範囲を指定する

特定の範囲内で乱数を生成したい場合は、nextInt(int bound)メソッドを使います。このメソッドは、0からbound - 1までの整数を生成します。例えば、0から9までの乱数を生成する場合は以下のようにします。


public class RandomExampleBound {
    public static void main(String[] args) {
        Random random = new Random();
        int randomNumber = random.nextInt(10); // 0から9までの乱数
        System.out.println("0から9の間のランダムな整数: " + randomNumber);
    }
}

実行結果


0から9の間のランダムな整数: 7

このように、nextInt(10)とすることで、0から9の範囲で乱数を生成できます。

4. Randomクラスの注意点

4. Randomクラスの注意点
4. Randomクラスの注意点

Randomクラスは同じシード(初期値)を使うと同じ順番の乱数を生成します。そのため、完全に予測不可能な乱数が必要な場合は、SecureRandomクラスを使用することをおすすめします。


import java.security.SecureRandom;

public class SecureRandomExample {
    public static void main(String[] args) {
        SecureRandom secureRandom = new SecureRandom();
        int secureRandomNumber = secureRandom.nextInt(10); // 0から9までの乱数
        System.out.println("SecureRandomによる乱数: " + secureRandomNumber);
    }
}

実行結果


SecureRandomによる乱数: 3

このように、SecureRandomを使うことでセキュリティに配慮した乱数を生成できます。

5. nextIntを使った簡単なサイコロプログラム

5. nextIntを使った簡単なサイコロプログラム
5. nextIntを使った簡単なサイコロプログラム

最後に、nextInt()メソッドを使ってサイコロを模したプログラムを作成してみましょう。これは、1から6のランダムな整数を出力する簡単な例です。


public class DiceExample {
    public static void main(String[] args) {
        Random random = new Random();
        int diceRoll = random.nextInt(6) + 1; // 1から6までの乱数
        System.out.println("サイコロの目: " + diceRoll);
    }
}

実行結果


サイコロの目: 4

このように、nextInt(6) + 1とすることで、1から6の範囲の乱数を生成できます。

6. nextIntとMath.randomの違いを理解しよう

6. nextIntとMath.randomの違いを理解しよう
6. nextIntとMath.randomの違いを理解しよう

Javaで乱数を生成する方法はRandomクラスだけではありません。Math.random()を使って乱数を生成することもできます。しかし、両者には特徴や使いどころが異なります。

Math.random()は0以上1未満の浮動小数点乱数を生成します。一方、Randomクラスは整数やlong、booleanなど幅広いデータ型の乱数生成が可能です。整数の乱数が必要な場合は、RandomnextInt()を使うのが便利です。

また、Randomクラスはインスタンスを生成して使うため、乱数生成の状態を保持できますが、Math.random()は毎回内部的にRandomクラスを呼び出すため、制御性は低くなります。

用途に応じて使い分けることで、より意図に合った乱数生成が可能になります。

7. nextIntと他の乱数メソッドを組み合わせて使う

7. nextIntと他の乱数メソッドを組み合わせて使う
7. nextIntと他の乱数メソッドを組み合わせて使う

RandomクラスにはnextInt()以外にも多くの乱数生成メソッドが用意されています。例えば、nextBoolean()で真偽値、nextDouble()で浮動小数点の乱数を生成できます。

これらのメソッドを組み合わせれば、ゲームやシミュレーションなど、複雑なランダム処理を実現できます。例えば、乱数でキャラクターのHPを設定し、さらに確率でイベント発生を判定するといった使い方が可能です。

また、nextInt()を複数回呼び出すことで、複数の乱数を管理したり、nextDouble()と組み合わせて確率分布を調整したりと、応用の幅は非常に広いです。

実際のアプリケーション開発では、処理内容に応じて適切なメソッドを選んで活用しましょう。

8. Randomクラスで乱数の再現性を持たせる方法

8. Randomクラスで乱数の再現性を持たせる方法
8. Randomクラスで乱数の再現性を持たせる方法

乱数と聞くと毎回ランダムな結果が得られるイメージがありますが、Randomクラスでは同じシード値を指定するとnextInt()で同じ乱数列を再現できます。この性質はデバッグや検証テストで非常に役立ちます。

例えば、ゲームの敵出現パターンやシミュレーション結果を検証したい場合、固定したシード値を設定して結果を再現することで、バグ調査が容易になります。

一方、シード値を指定しない場合は、現在時刻などをもとに自動生成されるため、毎回異なる乱数結果が得られます。用途に応じてシード値をコントロールすることが大切です。

ただし、セキュリティ目的で乱数を扱う場合は、SecureRandomを使用することが推奨されます。

まとめ

まとめ
まとめ

今回の記事では、JavaのRandomクラスを使った乱数生成の基本から応用までを詳しく解説しました。

要点の振り返り:
1. Randomクラスの基本的な使い方として、整数や小数をランダムに生成する方法を学びました。
2. nextInt()メソッドで範囲を指定してランダムな整数を生成する方法を理解しました。例えば、nextInt(10)を使用すれば、0から9のランダムな整数を取得できます。
3. Randomクラスのシード(初期値)を設定することで、乱数の再現性をコントロールできることも解説しました。
4. セキュリティが求められるケースでは、SecureRandomクラスを使用するのが推奨されることも紹介しました。

乱数はゲームのランダムイベント、パスワード生成、データのランダム抽出など、さまざまな場面で役立ちます。しっかりと理解しておくことで、プログラムの幅を広げることができます。以下にランダムな整数を生成するサンプルプログラムを再掲しますので、復習に活用してください。


import java.util.Random;

public class RandomReview {
    public static void main(String[] args) {
        Random random = new Random();
        int randomNum = random.nextInt(100); // 0から99までの乱数
        System.out.println("0から99のランダムな整数: " + randomNum);
    }
}
    

実行結果


0から99のランダムな整数: 42
    

上記のコードでは、nextInt(100)メソッドを使って0から99の間のランダムな整数を生成しています。このように、必要に応じて範囲を調整することができます。

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

生徒

Randomクラスについてしっかり理解できました!特に、nextInt()で範囲指定できるのが便利ですね。」

先生

「その通りです。範囲指定やシード設定を活用すれば、乱数の用途がさらに広がりますよ。」

生徒

「セキュリティ面でもSecureRandomが使えるのは安心ですね。今後のプログラムに活用したいです!」

先生

「ぜひ実際に使ってみてください。乱数生成はプログラミングの基礎なので、しっかり覚えておきましょう。」

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

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

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

Javaで乱数を生成するには、必ずRandomクラスを使う必要がありますか?

いいえ、Javaでは乱数を生成するためにMath.random()を使うこともできますが、Randomクラスの方が柔軟性が高く、範囲指定や整数・浮動小数点の生成などが簡単に行えるため、初心者にはRandomクラスの使用が推奨されます。

JavaのRandomクラスのnextInt()メソッドはどんなときに使うのですか?

nextInt()メソッドは、Javaプログラムでランダムな整数を生成したいときに使います。ゲームの処理、サイコロの目、ランダムなIDの生成など、あらゆる場面で活用できます。

nextInt(int bound)のboundには何を指定すればいいのですか?

nextInt(int bound)boundには生成したい乱数の上限を指定します。たとえば、nextInt(10)とすれば、0から9までの整数がランダムに生成されます。指定した数値未満までの範囲となることに注意しましょう。

JavaのRandomクラスとSecureRandomクラスの違いは何ですか?

Randomクラスは高速で手軽に乱数を生成できますが、シードが同じなら同じ乱数列を返すため、セキュリティ用途には向きません。一方、SecureRandomクラスは暗号的に安全な乱数を生成するため、パスワードやトークンの生成などに適しています。

Javaでサイコロの目を1から6の間でランダムに出す方法を教えてください。

JavaのRandomクラスを使ってrandom.nextInt(6) + 1とすれば、1から6の範囲でランダムな数値(サイコロの目)を生成できます。+1することで0から始まる乱数を調整しています。

JavaのRandomクラスで負の整数が出ることがあるのはなぜですか?

nextInt()メソッドを引数なしで使うと、int型のすべての範囲(負の数を含む)からランダムに値が生成されるため、負の整数も出力されます。正の数だけを使いたい場合はnextInt(正の数)で範囲を限定しましょう。

Javaで0から99の間のランダムな整数を出すにはどうすればいいですか?

Randomクラスを使ってnextInt(100)とすることで、0から99の間のランダムな整数が得られます。これはJavaで範囲指定された乱数を生成する基本的な方法です。

Javaの乱数で毎回同じ結果が出ることがあるのはなぜですか?

Randomクラスに同じシード値(初期値)を設定した場合、同じ順番の乱数列が生成されるためです。毎回違う結果がほしい場合はシードを設定しないか、時間などに応じたランダムなシードを使いましょう。

JavaのSecureRandomは初心者でも簡単に使えますか?

SecureRandomRandomクラスとほぼ同じように使えるため、初心者でも比較的簡単に使えます。セキュリティを重視したい場合や、安全なトークン生成が必要な場面ではぜひ活用してください。

JavaのRandomクラスを使うときは毎回importが必要ですか?

はい、Randomクラスはjava.utilパッケージに含まれているため、Javaで使用する際はimport java.util.Random;と書いてクラスをインポートする必要があります。

nextInt()とnextDouble()の違いは何ですか?

nextInt()は整数を、nextDouble()は0.0以上1.0未満の小数(浮動小数点数)をランダムに生成するメソッドです。整数がほしい場合はnextInt()、小数がほしい場合はnextDouble()を使い分けます。
カテゴリの一覧へ
新着記事
Thymeleafのメリットとは?JSPとの違いを徹底比較して初心者にもわかりやすく解説!
JavaのByteArrayInputStreamクラスを完全解説!初心者でもわかる使い方
JavaのHttpServletResponseクラスとsendRedirectメソッドを初心者向けに徹底解説!
Spring Bootのapplication.ymlとプロファイルの使い方入門!環境ごとの設定をわかりやすく解説
人気記事
No.1
Java&Spring記事人気No1
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
JSPでif文・for文を使う方法!初心者でもわかるJavaとの違いと使い方
No.3
Java&Spring記事人気No3
Spring Data JPA入門!findAll()やfindBy**()の使い方などデータベース操作の基礎を学ぶ
No.4
Java&Spring記事人気No4
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法
No.5
Java&Spring記事人気No5
Spring BootとVS Codeで開発を始めよう!拡張機能・launch.json・ホットリロードを丁寧に解説
No.6
Java&Spring記事人気No6
JavaのRuntimeExceptionを完全解説!初心者でもわかるjava.langパッケージの基礎
No.7
Java&Spring記事人気No7
Spring BootのMultipartFile入門:ファイルアップロード・ダウンロードの実装方法と制限設定
No.8
Java&Spring記事人気No8
SpringのPageableとSortでページング一覧APIを最短実装!初心者向け完全ガイド