In many games and apps, things change or happen by surprise. Maybe a game rolls a dice, picks a random color, or hides a treasure in a different spot each time. This is all done using random numbers. In JavaScript, you can easily create random numbers using a few simple tools. Let’s explore how it works.
with hands-on learning.
get the skills and confidence to land your next move.
What Is Math.random()?
JavaScript has a built-in tool called Math.random(). It gives you a new random number every time you call it. This number is always between 0 (included) and 1 (not included). That means you might get 0.3782, 0.0091, or 0.9999, but you’ll never get 1 or more.
console.log(Math.random());Every time you run this code, it prints a different number between 0 and just below 1. This is useful, but we often want to get whole numbers or numbers in a specific range. Let’s learn how to do that next.
Getting Whole Numbers
Games and other apps usually need whole numbers, not decimals. For example, a dice doesn’t land on 3.7—it lands on 3 or 4. To get a whole number from a random decimal, we use a function called Math.floor().
Math.floor() removes the decimal part and keeps only the whole number.
let number = Math.floor(Math.random() * 10);
console.log(number);This code gives a whole number from 0 to 9. Here’s how it works:
Math.random()gives a number from 0 to just below 1.- Multiplying by 10 makes the range from 0 to just below 10.
Math.floor()removes the decimal, giving a number like 0, 1, 2, …, or 9.
If you want a number from 1 to 10 instead, you simply add 1 after rounding.
let number = Math.floor(Math.random() * 10) + 1;
console.log(number);Now the result will be between 1 and 10.
Getting Numbers Between Any Two Values
Sometimes, you want a random number between any two numbers, like from 50 to 100 or from 5 to 20. You can use this formula:
Math.floor(Math.random() * (max - min + 1)) + min;This formula works like this:
max - min + 1gives you the size of the range.Math.random()chooses a decimal in that size.Math.floor()makes it a whole number.- Adding
minmoves the result into your desired range.
Example: Random number between 50 and 100
let min = 50;
let max = 100;
let number = Math.floor(Math.random() * (max - min + 1)) + min;
console.log(number);This will print numbers like 55, 62, 100, or any other number between 50 and 100.
Real-World Examples
Let’s look at how random numbers are used in real projects.
Example 1: Rolling a Dice
let dice = Math.floor(Math.random() * 6) + 1;
console.log("You rolled a " + dice);This code simulates a dice roll. Since a dice has 6 sides, we multiply by 6 to get values from 0 to 5. Adding 1 shifts the result to be between 1 and 6.
Example 2: Picking a Random Color
let colors = ["red", "blue", "green", "yellow", "purple"];
let index = Math.floor(Math.random() * colors.length);
let randomColor = colors[index];
console.log("Your random color is " + randomColor);Here we use a random number to pick one item from a list of colors. colors.length gives us the number of colors, and we use that to get a random index.
Example 3: Number Guessing Game
let secretNumber = Math.floor(Math.random() * 10) + 1;
let guess = 5; // pretend the user guessed 5
if (guess === secretNumber) {
console.log("Correct!");
} else {
console.log("Wrong! The number was " + secretNumber);
}This code sets a secret number between 1 and 10, and compares it with a guess. If the guess is correct, it shows a success message. Otherwise, it shows the correct number.
Common Mistakes to Avoid
One common mistake is forgetting to use Math.floor(), which leads to decimal numbers instead of whole numbers. Another mistake is getting the range wrong — for example, multiplying by 10 but expecting results from 1 to 10. Always double-check your formula and test it to make sure it works as expected.
Conclusion
Here’s what we’ve learned:
Math.random()gives a decimal between 0 and 1.- You can multiply and round it to get whole numbers.
- Use
Math.floor()to remove decimals. - You can create numbers in any range using a simple formula.
- Random numbers are great for games, fun effects, and useful tools.




