カテゴリ: Java 更新日: 2026/05/23

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

Random のlongsメソッド
Random のlongsメソッド

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

生徒

「先生、Javaで乱数を使いたいんですけど、どうやって書けばいいんですか?」

先生

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

生徒

「整数とか小数も出せるんですか?あと、何個も一気に出したいときってどうすれば…?」

先生

「そういうときはlongsメソッドを使うと便利です。では、詳しく解説していきましょう。」

1. JavaのRandomクラスとは

「1. JavaのRandomクラスとは」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

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

JavaのRandomクラスは、疑似乱数(ランダムな値のように見える数字)を生成するためのクラスです。乱数とは、ある範囲内でバラバラな数字を生成するもので、ゲームやテストデータの作成など、さまざまな場面で使われます。

Randomクラスはjava.utilパッケージに含まれているため、使用する際にはimport java.util.Random;が必要です。

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

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

Randomクラスを使うには、まずインスタンスを作成します。そして、そのインスタンスから乱数を生成する各種メソッドを使って値を取得します。


import java.util.Random;

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

この例では、0から99までの整数の中からランダムに1つを生成しています。

3. longsメソッドとは

3. longsメソッドとは
3. longsメソッドとは

longsメソッドは、Randomクラスで複数のlong型の乱数を一度に生成するためのメソッドです。Java8以降で追加された機能で、ストリーム(Stream)を使って乱数を扱います。

たとえば「ランダムなlong値を10個生成したい」といった場合、longsメソッドが便利です。

4. longsメソッドの使い方とサンプル

「4. longsメソッドの使い方とサンプル」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. longsメソッドの使い方とサンプル
4. longsメソッドの使い方とサンプル

以下は、longsメソッドを使って10個のランダムなlong型の値を生成し、画面に出力するサンプルコードです。


import java.util.Random;

public class LongsExample {
    public static void main(String[] args) {
        Random random = new Random();
        random.longs(10).forEach(System.out::println);
    }
}

このコードでは、longs(10)で10個の乱数を生成し、forEachで1つずつ出力しています。

5. longsメソッドの引数とオプション

5. longsメソッドの引数とオプション
5. longsメソッドの引数とオプション

longsメソッドには、以下のようにさまざまな使い方があります。

  • longs(long streamSize):指定した数の乱数を生成
  • longs(long streamSize, long randomNumberOrigin, long randomNumberBound):指定範囲内の乱数を指定個数生成

以下のコードでは、1から100までの範囲のlong型乱数を5個生成しています。


import java.util.Random;

public class LongsRangeExample {
    public static void main(String[] args) {
        Random random = new Random();
        random.longs(5, 1, 101).forEach(System.out::println);
    }
}

このように、範囲と個数を自由に指定できるのがlongsメソッドの特徴です。

6. Randomクラスとlongsメソッドの用途

6. Randomクラスとlongsメソッドの用途
6. Randomクラスとlongsメソッドの用途

JavaのRandomクラスやlongsメソッドは、以下のような用途で利用されます。

  • ゲームアプリでの敵の出現位置の決定
  • ランダムなIDの生成
  • 統計的なデータのシミュレーション
  • テストデータの作成

特にlongsメソッドは、大量の乱数を効率よく生成したいときにとても便利です。ループでnextLong()を何度も呼ぶよりも、コードがすっきり書けます。

7. RandomとSecureRandomの違い

「7. RandomとSecureRandomの違い」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

7. RandomとSecureRandomの違い
7. RandomとSecureRandomの違い

Randomクラスは疑似乱数生成器ですが、セキュリティ上の用途ではSecureRandomクラスを使うことが推奨されます。たとえば、パスワード生成やトークン作成にはRandomではなくSecureRandomを使うようにしましょう。

Randomクラスは予測可能性があるため、セキュリティ面では弱点があります。そのため、暗号やユーザー認証などの処理には不向きです。

8. Java8以降のStreamと組み合わせた使い方

8. Java8以降のStreamと組み合わせた使い方
8. Java8以降のStreamと組み合わせた使い方

longsメソッドはLongStreamを返すため、Java8以降のストリーム処理と非常に相性が良いです。フィルターやマップ処理、ソートなども簡単に実装できます。


import java.util.Random;
import java.util.stream.LongStream;

public class StreamFilterExample {
    public static void main(String[] args) {
        Random random = new Random();
        LongStream stream = random.longs(20, 1, 100);
        stream.filter(n -> n % 2 == 0)
              .sorted()
              .forEach(System.out::println);
    }
}

この例では、1〜99の範囲の乱数から偶数のみを抽出し、昇順に並べて出力しています。

9. まとめ

9. まとめ
9. まとめ

この記事では、Javaで乱数を生成するためのRandomクラスと、その中でも特に便利なlongsメソッドについて詳しく学びました。Randomクラスは、整数や実数、ブール値などさまざまな種類の乱数を簡単に生成できる標準クラスです。特に、Java8以降で利用可能なlongsメソッドを使うと、複数のlong型の値をストリームとして一度に生成でき、効率的で簡潔なコードが書けるというメリットがあります。

また、範囲指定が可能なオーバーロード形式や、生成個数を制御できる構文など、柔軟な乱数生成が可能であることも確認しました。大量のランダムデータを必要とするアプリケーションや、テストの自動化など、さまざまな実務シーンで非常に役立つメソッドです。

一方で、セキュリティ性の高い用途にはSecureRandomの使用が推奨される点も重要な知識です。用途に応じて使い分けることで、安全かつ適切な乱数処理が可能となります。

以下に、もう一度longsメソッドを使った基本的なコードの例を示しますので、ぜひコピーして実行してみてください。


import java.util.Random;

public class LongsSummaryExample {
    public static void main(String[] args) {
        Random random = new Random();
        random.longs(10, 100, 200).forEach(System.out::println);
    }
}

このコードでは、100〜199の範囲でランダムなlong型の値を10個生成して出力します。乱数の範囲指定、生成数の指定、そしてストリーム処理の活用というlongsメソッドの基本機能が詰まった例です。

Java初心者の方も、このRandomクラスとlongsメソッドを活用できるようになると、より実用的なプログラムが書けるようになります。今後は、intsメソッドやdoublesメソッドとの比較や、ストリームAPIの他の操作とも組み合わせることで、さらに応用力を高めることができます。

Javaでの乱数処理は、ゲーム、データ分析、AIアルゴリズムなど、あらゆる分野で使われており、基本をしっかり理解することで応用の幅がぐんと広がります。ぜひ、実際にコードを書いて試してみてください。

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

生徒

Randomクラスって、こんなにいろんなことができるんですね!」

先生

「そうですね。longsメソッドのように、ストリームと組み合わせると、もっと便利に使えるんですよ。」

生徒

「範囲指定して複数の乱数を一気に出せるのがすごく便利だと感じました。今後も使っていきたいです!」

先生

「その調子です。次はintsdoublesメソッドにも挑戦してみると、さらに幅広く使えるようになりますよ。」

カテゴリの一覧へ
新着記事
New1
Java
JavaのNotSerializableExceptionを完全解説!初心者でも理解できるシリアライズと例外処理
新規投稿
New2
Spring
Springの@Repositoryアノテーションの使い方を徹底解説!初心者でもわかるSpringフレームワークのデータアクセス
更新記事
New3
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
更新記事
New4
Java
Javaのjava.mathとBigIntegerのintValueメソッドを完全解説!初心者でもわかる数値変換の基本
更新記事
人気記事
No.1
Java&Spring記事人気No1
Servlet
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.2
Java&Spring記事人気No2
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.3
Java&Spring記事人気No3
JSP
JSPでフォームを表示して入力を受け取る基本手順をやさしく解説!初心者向けフォーム処理の入門ガイド
No.4
Java&Spring記事人気No4
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.5
Java&Spring記事人気No5
JSP
JSPでCSSやJSを読み込む基本!外部ファイルのパス指定に注意しよう
No.6
Java&Spring記事人気No6
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.7
Java&Spring記事人気No7
Spring
Spring Data JPA入門!findAll()やfindBy**()の使い方などデータベース操作の基礎を学ぶ
No.8
Java&Spring記事人気No8
JSP
JSPでif文・for文を使う方法!初心者でもわかるJavaとの違いと使い方