In AP Computer Science A, random number generation is producing an unpredictable value from a defined range using Math.random(), which returns a double from 0.0 (inclusive) up to but not including 1.0; you scale and shift that value, then cast to int, to get random integers in any range you want.
Random number generation is how your Java program picks a value it can't predict in advance, like simulating a dice roll or deciding how many grams of food a bird eats. In AP CSA, it all runs through one method, Math.random(), which returns a double greater than or equal to 0.0 and strictly less than 1.0. That half-open range is the single most tested fact about it. The value can be 0.0, but it can never be 1.0.
Since you usually want random integers, not decimals between 0 and 1, you transform the result with a formula worth memorizing cold. The expression (int) (Math.random() * (max - min + 1)) + min gives you a random integer from min to max, inclusive on both ends. Multiplying stretches the range, adding shifts where it starts, and the (int) cast truncates the decimal (it chops, it doesn't round). So (int) (Math.random() * 41) + 10 produces each integer from 10 to 50 with equal probability. Every piece of that formula gets tested.
Random number generation lives in Topic 1.11, Using the Math Class, in Unit 1 of AP CSA. It directly supports learning objective 1.11.A, which asks you to write expressions using built-in math libraries and determine the value they produce. Per EK 1.11.A.1, the Math class is in java.lang, so it's available by default with no import needed, and per EK 1.11.A.2 it contains only class (static) methods, which is why you call Math.random() on the class name rather than on an object. Math.random() appears in the Java Quick Reference you get on exam day, but the reference only tells you what it returns. It won't build the range formula for you, and that formula is exactly what multiple-choice questions probe.
Keep studying AP® Computer Science A Unit 1
Math.random() (Unit 1)
This is the only tool the AP exam gives you for random number generation. Everything else, including random integers, random ranges, and random booleans like Math.random() < 0.25, is built by transforming its [0.0, 1.0) output.
Pseudorandom value (Unit 1)
The values Math.random() produces aren't truly random. They come from a deterministic algorithm that just looks random, which is why they're called pseudorandom. For exam purposes you treat them as unpredictable values where every outcome in the range is equally likely.
Casting and integer truncation (Unit 1)
The (int) cast in the random formula truncates toward zero instead of rounding. That truncation is what makes the top of the range exclusive before you add 1, and it's the detail that decides whether your range includes its max value or stops one short.
Loops and conditionals in simulations (Unit 2)
Random generation rarely shows up alone on the exam. It gets wrapped in a for loop and an if statement to simulate trials, like counting how often Math.random() < 0.25 over 100 iterations or tracking the max of 10 random values. You have to trace the randomness and the control flow together.
Random number generation is multiple-choice territory, and the questions follow a few predictable patterns. The most common asks you to find the range of possible values for an expression like (int) (Math.random() * 5) + 2, which produces 2 through 6. A trickier variant gives you (int) (Math.random() * (max - min)) + min with min = -5 and max = 5 and asks which value can never occur. The answer is 5, because the missing + 1 makes the top end unreachable. Other stems chain two random values together, where the second range depends on the first, or embed Math.random() in a loop and ask what a counter or max-tracker can end up holding. In every case your job is the same. Work out the exact inclusive-to-exclusive boundaries of the expression, remembering that Math.random() can return 0.0 but never 1.0, and that casting to int truncates. No released FRQ has hinged on writing random expressions, but you may need to reason about given random code inside a larger method.
Math.random() is the method; random number generation is the whole technique built around it. The method only ever gives you a double in [0.0, 1.0). Generating a useful random number means doing the extra work of multiplying by the range size, adding the minimum, and casting to int. Exam questions almost never test the raw method call. They test whether you did that transformation correctly, especially whether you remembered the + 1 needed to make the maximum value reachable.
Math.random() returns a double from 0.0 inclusive up to but not including 1.0, so it can be 0.0 but never exactly 1.0.
The formula (int) (Math.random() * (max - min + 1)) + min produces a random integer from min to max, with both endpoints included.
If the formula uses (max - min) without the + 1, the maximum value can never be generated, and that exact trap shows up in multiple-choice questions.
The (int) cast truncates the decimal portion instead of rounding, which is what makes these integer ranges work.
Math.random() is a static method of the Math class in java.lang, so it's available by default and called on the class name, not an object.
Math.random() is in the Java Quick Reference on the exam, but the reference won't remind you how to build a range, so memorize the formula.
It's producing an unpredictable value from a defined range using Math.random(), which returns a double in [0.0, 1.0). You scale, shift, and cast that value to get random integers, like (int) (Math.random() * 6) + 1 for a dice roll from 1 to 6.
No. Math.random() returns values greater than or equal to 0.0 and strictly less than 1.0. It can return exactly 0.0 but never 1.0, and that asymmetry is why range formulas need the + 1 to include the maximum.
A random integer from 1 to 10, inclusive. Math.random() * 10 gives a double in [0.0, 10.0), the (int) cast truncates it to 0 through 9, and adding 1 shifts the range to 1 through 10.
Pseudorandom describes what Math.random() actually produces. The values come from a deterministic algorithm, so they only appear random. Random number generation is the broader technique of using those pseudorandom values to simulate unpredictable outcomes in your code.
Only partially. The Java Quick Reference lists Math.random() and tells you it returns a double in [0.0, 1.0), but it does not give you the range formula. You need to know (int) (Math.random() * (max - min + 1)) + min on your own.
Connect this key term to the AP exam workflow: review the course, practice questions, and check related study tools.
Review units, study guides, and course resources.
Check this vocabulary in multiple-choice context.
Apply key concepts in written AP responses.
Estimate the exam score you are working toward.
Review the highest-yield facts before practice.
Put the full course together before test day.