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

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

Random のdoublesメソッド
Random のdoublesメソッド

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

生徒

「先生、Javaでランダムな小数を作りたいんですけど、どうやればいいんですか?」

先生

「JavaではRandomクラスのdoublesメソッドを使うと、簡単に乱数の小数を作ることができますよ。」

生徒

「整数はnextInt()でできるのは知ってたけど、小数もあるんですね!具体的にはどう使うんですか?」

先生

「それじゃあ、基本から順番に解説していきましょう!」

1. JavaのRandomクラスとは

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

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

JavaのRandomクラスは、乱数(ランダムな数値)を生成するための標準クラスです。整数や小数、ブール値など、さまざまなランダム値を生成することができるため、ゲーム開発やテストデータ作成などに広く利用されています。

java.util.Randomに含まれており、利用するにはimport java.util.Random;の記述が必要です。

2. doublesメソッドとは

2. doublesメソッドとは
2. doublesメソッドとは

doublesメソッドは、Java8以降に追加されたRandomクラスのメソッドで、複数のdouble型の乱数(小数)を一度に生成するために使用されます。

ストリーム(DoubleStream)として乱数を返すため、ループ処理やフィルター処理と相性が良く、大量のランダムな小数を効率よく生成できます。

3. doublesメソッドの基本的な使い方

3. doublesメソッドの基本的な使い方
3. doublesメソッドの基本的な使い方

まずは、doublesメソッドを使って10個のランダムな小数を生成する基本的なサンプルを見てみましょう。


import java.util.Random;

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

このコードは、0.0以上1.0未満の範囲で10個のdouble型の乱数を出力します。Javaのdouble型は64ビットの浮動小数点数なので、非常に細かい値まで扱うことができます。

4. doublesメソッドの範囲指定

「4. doublesメソッドの範囲指定」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. doublesメソッドの範囲指定
4. doublesメソッドの範囲指定

doublesメソッドでは、乱数の生成数だけでなく、生成される値の範囲も指定できます。次のように使います。


import java.util.Random;

public class DoublesRangeExample {
    public static void main(String[] args) {
        Random random = new Random();
        random.doubles(5, 1.0, 5.0).forEach(System.out::println);
    }
}

このサンプルでは、1.0以上5.0未満のランダムな小数を5個出力します。範囲指定を活用すると、スコアや確率のシミュレーションなどに便利です。

5. doublesメソッドのさまざまな使い方

5. doublesメソッドのさまざまな使い方
5. doublesメソッドのさまざまな使い方

doublesメソッドは以下のようなオーバーロード形式があります。

  • doubles(long streamSize):指定個数の0.0〜1.0未満の乱数
  • doubles(long streamSize, double randomNumberOrigin, double randomNumberBound):範囲と個数指定
  • doubles():無限ストリーム(forEachなどで終了)

無限ストリームを使用する場合は、limitで数を制限しましょう。


import java.util.Random;

public class DoublesLimitExample {
    public static void main(String[] args) {
        Random random = new Random();
        random.doubles().limit(3).forEach(System.out::println);
    }
}

6. doublesメソッドの活用場面

6. doublesメソッドの活用場面
6. doublesメソッドの活用場面

Javaのdoublesメソッドは、確率シミュレーション、スロットゲーム、機械学習データの生成、センサーデータの模擬、UIでのランダムアニメーションなど、さまざまなシーンで利用されています。

特に、小数の範囲指定ができることで、実際の数値のようにリアルなデータを作ることができるのが大きな利点です。

7. doublesと他のメソッドとの違い

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

7. doublesと他のメソッドとの違い
7. doublesと他のメソッドとの違い

doublesは小数を、intsは整数を、longsはlong型の整数を生成します。用途に応じて使い分けましょう。

たとえば、乱数で0〜1の間の確率を出したいときはdoubles、配列のインデックスに使いたいならintsが適しています。

8. まとめ

8. まとめ
8. まとめ

今回の記事では、JavaのRandomクラスの中でも特にdoublesメソッドに注目し、小数の乱数を生成する方法を初心者向けに解説しました。Javaのdoublesメソッドは、Java8以降で追加された非常に便利な機能で、ストリームを使って複数のdouble型の乱数を簡単に、かつ効率的に生成することができます。

この記事を通して、doublesメソッドの基本的な使い方、範囲指定の方法、無限ストリームの制御、そしてさまざまな応用例について学びました。Javaプログラミング初心者の方でも、forEachlimitなどのメソッドと組み合わせることで、現実のデータに近い乱数を自在に扱えるようになります。

特に、確率シミュレーションゲームプログラミングAI用の疑似データ生成など、実践的な場面でdoublesメソッドは大活躍します。また、同様の乱数メソッドとして、整数を生成するintsや、long型の乱数を生成するlongsと使い分けることも大切です。

以下に、今回のまとめとして0.5以上1.0未満の範囲で小数の乱数を5つ生成するJavaコードを紹介します。範囲指定を使うことで、より実用的な処理が行えます。


import java.util.Random;

public class DoublesSummary {
    public static void main(String[] args) {
        Random random = new Random();
        random.doubles(5, 0.5, 1.0).forEach(System.out::println);
    }
}

Javaで小数の乱数を自在に生成できるようになると、ユーザーの操作に応じた確率処理や、現実に近いデータの再現が可能になります。初心者の方も、ぜひこのdoublesメソッドを使いこなして、より柔軟なプログラミングを実現していきましょう。

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

生徒

「doublesメソッドって、小数の乱数をたくさん一気に出せるから、すごく便利ですね!」

先生

「そうですね。範囲の指定もできて、確率シミュレーションやデータ生成など、いろいろな場面で使われていますよ。」

生徒

「ストリームっていう仕組みも面白かったです。limitで数を決められるのも安心でした。」

先生

「今後は、他のメソッドとの組み合わせや、filterで条件をつけることも覚えていくと、さらに実用的なプログラムが書けるようになりますよ。」

Javaの基礎を最初から体系的に学びたい人には、 初心者向けで定評のある定番入門書がこちらです。

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

※ Amazon広告リンク

カテゴリの一覧へ
新着記事
New1
Spring
Spring の@RequestParamの使い方!テキストボックス、ラジオボタン、チェックボックス、セレクトボックスの値を受け取る。
更新記事
New2
JSP
EL式の基本構文まとめ!${}で使う書き方のルールを解説
更新記事
New3
Java
JavaのBigIntegerとisProbablePrimeメソッドを完全解説!初心者でもわかる素数判定
更新記事
New4
JSP
JSPで発生する主なエラーとは?初心者向けに原因と対処法をやさしく解説
新規投稿
人気記事
No.1
Java&Spring記事人気No1
JSP
JSPのおすすめ学習・用語まとめ【2026年最新版】初心者が知っておきたい基本をやさしく解説
No.2
Java&Spring記事人気No2
Java
Javaのクラスとインスタンス化、コンストラクタの使い方完全ガイド!初心者でもわかるオブジェクト指向の基礎
No.3
Java&Spring記事人気No3
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.4
Java&Spring記事人気No4
Spring
Thymeleaf(タイムリーフ)入門!初心者でもわかるSpring Bootとテンプレートエンジンの使い方
No.5
Java&Spring記事人気No5
Spring
Javaの@PreAuthorizeアノテーションを完全ガイド!初心者でもわかるメソッドセキュリティ設定
No.6
Java&Spring記事人気No6
Spring
Springの@Queryアノテーションを徹底解説!初心者でもわかるSpring Bootのカスタムクエリ
No.7
Java&Spring記事人気No7
Java
JavaのExceptionクラスを完全解説!初心者でも理解できる例外処理の基本
No.8
Java&Spring記事人気No8
JSP
JSPでCSSやJSを読み込む基本!外部ファイルのパス指定に注意しよう