JAVASCRIPT

JavaScript Random: Syntax, Usage, and Examples

JavaScript provides a simple and powerful way to generate random numbers using the Math.random() method. Whether you're building games, simulating dice rolls, shuffling cards, or picking a random item from a list, understanding how to use JavaScript random techniques will help you introduce randomness and unpredictability into your applications. The method works by returning a floating-point number between 0 (inclusive) and 1 (exclusive).

By mastering the random JavaScript approach, you can implement everything from random color generators to lottery simulations.

How to Use JavaScript Random

The Math.random() function doesn't take any arguments and returns a pseudo-random number between 0 (inclusive) and 1 (exclusive):

const randomNum = Math.random();
console.log(randomNum); // e.g., 0.72839182

Each time you call it, it produces a new random number.

When to Use Random JavaScript Methods

Generate a Random Decimal

You can call Math.random() directly to get a number like 0.145938 or 0.999999.

const decimal = Math.random();
console.log(decimal);

This is often used as a base for other random calculations.

Generate a Random Integer Within a Range

To generate a random whole number between two values, use a custom formula:

function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

Now you can call:

console.log(getRandomInt(1, 10)); // Random integer from 1 to 10

Pick a Random Item from an Array

const fruits = ["apple", "banana", "cherry", "date"];
const randomIndex = Math.floor(Math.random() * fruits.length);
console.log(fruits[randomIndex]);

You can build random selection tools, quizzes, or random content generators using this pattern.

Examples of JavaScript Random in Practice

Simulate a Dice Roll

const roll = Math.floor(Math.random() * 6) + 1;
console.log("You rolled a", roll);

This generates a number between 1 and 6, just like a physical die.

Flip a Coin

const result = Math.random() < 0.5 ? "Heads" : "Tails";
console.log("Coin flip result:", result);

Simple, elegant randomness.

Random Color Generator

function getRandomColor() {
  const r = Math.floor(Math.random() * 256);
  const g = Math.floor(Math.random() * 256);
  const b = Math.floor(Math.random() * 256);
  return `rgb(${r}, ${g}, ${b})`;
}

console.log(getRandomColor()); // e.g., "rgb(128, 45, 210)"

This is useful for dynamic styling or visual experiments.

Random Password Generator (Simple)

function generatePassword(length) {
  const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  let password = "";

  for (let i = 0; i < length; i++) {
    password += chars.charAt(Math.floor(Math.random() * chars.length));
  }

  return password;
}

console.log(generatePassword(8)); // e.g., "A9d2ZfL1"

Random string generation is a common task, especially in authentication systems.

Learn More About JavaScript Random

How Does Math.random() Work?

Math.random() uses a pseudo-random number generator. That means the numbers aren't truly random—they're calculated based on an internal algorithm—but they’re random enough for most purposes.

It doesn’t give cryptographically secure results. For secure randomness (like generating a session key), use crypto.getRandomValues() instead.

const array = new Uint32Array(1);
crypto.getRandomValues(array);
console.log(array[0]);

Create a Random Boolean

const isTrue = Math.random() > 0.5;
console.log(isTrue);

You can create randomized logic and flags with just one line.

Normalize Random Numbers for Other Uses

You can scale and round random decimals to fit other needs:

const randomFloat = Math.random() * 10; // 0–9.999...
const rounded = Math.round(randomFloat); // 0–10

Use floor, ceil, or round to shape your results.

Shuffle an Array Randomly

function shuffle(array) {
  return array.sort(() => Math.random() - 0.5);
}

console.log(shuffle([1, 2, 3, 4, 5]));

This creates a quick and dirty shuffle, though the randomness isn’t perfect. For better randomness, implement the Fisher-Yates shuffle.

Random Delay or Timeout

const delay = Math.random() * 2000;

setTimeout(() => {
  console.log("Delayed randomly!");
}, delay);

Good for testing or simulating network behavior.

Randomize Backgrounds or Styles

const colors = ["#FF5733", "#33FF57", "#3357FF"];
document.body.style.backgroundColor = colors[Math.floor(Math.random() * colors.length)];

This brings playful interactivity to websites and applications.

Controlled Randomness for Testing

In some cases, you might want repeatable "random" results. You can achieve this by using seed-based libraries like seedrandom:

// Using external library seedrandom
Math.seedrandom("abc");
console.log(Math.random()); // Always the same with same seed

Useful when testing apps that rely on randomness.

Logging Random Outcomes

You can combine random values with timestamps for logs or debugging:

console.log(`[${new Date().toISOString()}] Value: ${Math.random()}`);

This is handy when diagnosing unpredictable behavior or tracking unique IDs.

The JavaScript random features centered around Math.random() give you versatile tools to introduce chance, unpredictability, and variation into your code. From choosing a random number to simulating game mechanics or generating dynamic UI elements, random JavaScript patterns show up across a wide range of development scenarios.

By building your own utilities on top of Math.random(), you can confidently handle randomness in almost any frontend or backend project.

Learn to Code in JavaScript for Free
Start learning now
button icon
To advance beyond this tutorial and learn JavaScript by doing, try the interactive experience of Mimo. Whether you're starting from scratch or brushing up your coding skills, Mimo helps you take your coding journey above and beyond.

Sign up or download Mimo from the App Store or Google Play to enhance your programming skills and prepare for a career in tech.

You can code, too.

© 2025 Mimo GmbH