Generating Random Numbers in JavaScript with Math.random()
Feb 11, 2025 am 08:31 AMThis article will introduce how to use the JavaScript Math.random()
function to generate random numbers and build a reusable function to apply to various scenarios, such as loading random pictures, random selection of elements from an array, and generating random colors. Letters, strings, phrases, and passwords.
Core points:
- The built-in
Math.random()
function in JavaScript generates pseudo-random floating point numbers between 0 (inclusive) and 1 (not included). To generate a random number greater than 1, just multiply the result by the scale factor. - To generate a random integer, use the
Math.floor
function to round down. To generate random integers within a specific range, simply add the minimum value of the range to the result. - This article shows how to use the
Math.random()
function to generate random images, colors, letters, strings, phrases, and passwords. These techniques can add random elements to your JavaScript program.
The functions created in the - article (such as
randomInt
,randomColor
andrandomString
) are building blocks for more complex functions, showing the cornerstone of programming: using functions to create more complex functions.
Randomity in JavaScript
It is very useful to add random elements to your program. You may want to add some random styles to enhance the fun of your website, generate random phrases, or add accidental elements to the game.
Unfortunately, creating real random values ??is actually very difficult (unless you are able to get exposed to radioactive substances… or a monkey using a keyboard). To solve this problem, the programming language uses a deterministic method to generate pseudo-random numbers. These numbers appear to be random, but are actually generated by functions that accept seed values ??based on events such as time or mouse pointer position.
JavaScript has random
function, which is a method with built-in Math
objects. The ECMAScript standard does not specify how this function should generate random numbers, so it is left to the browser manufacturer to implement. At the time of writing, all major browsers currently use the xorshift128 algorithm in the background to generate pseudo-random numbers.
To use it, just enter Math.random()
and it will return a pseudo-random floating point number between 0 (inclusive) and 1 (not included):
const x = Math.random();
This can be expressed by the following inequality:
<code>0 ≤ x < 1</code>
But what if you want a random number greater than 1? It's simple: you just need to multiply by a scale factor to amplify it - for example, multiplying the result by 10 will yield a value between 0 (inclusive) and 10 (not included):
const y = Math.random() * 10;
If we multiply both sides of the previous inequality by 10, we can see the reason:
<code>0 ≤ y < 10</code>
But the result is still a floating point number. What if we want a random integer? It's very simple: we just need to use the Math.floor
function to round the return value down to the integer below. The following code assigns a random integer between 0 and 9 (included) to the variable z:
const z = Math.floor(Math.random() * 10);
Note that even if we multiply by 10, the returned value is only 9.
We can generalize this method to create a function that will return 0 to (but not included) a random integer between the numbers provided as a parameter:
const x = Math.random();
We can now use this function to return random numbers between 0 and 9:
<code>0 ≤ x < 1</code>
So we now have a way to create random integers. But what if it is between two different values, instead of always starting from zero? We just need to use the above code and add the value we want the range to start. For example, if we want to generate random integers between 6 and 10 (included), we will first generate random integers between 0 and 4 using the above code, and then add 6 to the result:
const y = Math.random() * 10;
Note that in order to generate a random integer between 0 and 4, we actually have to multiply by 5.
We can generalize this method to create a function that will return a random integer between two values:
<code>0 ≤ y < 10</code>
This is just a generalized form of code we write to get random numbers between 6 and 10, but replace 6 with the min
parameter and 10 with the max
parameter. To use it, just enter two parameters to represent the lower and upper limits of the random number (included). Therefore, to simulate rolling six-sided dice, we can use the following code to return an integer between 1 and 6:
const z = Math.floor(Math.random() * 10);
(The picture should be inserted here, but the picture cannot be displayed because the local file system cannot be accessed)
The rest of the parts are similar to the original text. They can be rewritten according to the original text. While maintaining the consistency of the content, adjust the sentence structure and words to make it smoother and more natural. It should be noted that the pictures need to be preserved and kept in their original format.
The above is the detailed content of Generating Random Numbers in JavaScript with Math.random(). For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Java and JavaScript are different programming languages, each suitable for different application scenarios. Java is used for large enterprise and mobile application development, while JavaScript is mainly used for web page development.

JavaScriptcommentsareessentialformaintaining,reading,andguidingcodeexecution.1)Single-linecommentsareusedforquickexplanations.2)Multi-linecommentsexplaincomplexlogicorprovidedetaileddocumentation.3)Inlinecommentsclarifyspecificpartsofcode.Bestpractic

The following points should be noted when processing dates and time in JavaScript: 1. There are many ways to create Date objects. It is recommended to use ISO format strings to ensure compatibility; 2. Get and set time information can be obtained and set methods, and note that the month starts from 0; 3. Manually formatting dates requires strings, and third-party libraries can also be used; 4. It is recommended to use libraries that support time zones, such as Luxon. Mastering these key points can effectively avoid common mistakes.

JavaScriptispreferredforwebdevelopment,whileJavaisbetterforlarge-scalebackendsystemsandAndroidapps.1)JavaScriptexcelsincreatinginteractivewebexperienceswithitsdynamicnatureandDOMmanipulation.2)Javaoffersstrongtypingandobject-orientedfeatures,idealfor

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

JavaScripthassevenfundamentaldatatypes:number,string,boolean,undefined,null,object,andsymbol.1)Numbersuseadouble-precisionformat,usefulforwidevaluerangesbutbecautiouswithfloating-pointarithmetic.2)Stringsareimmutable,useefficientconcatenationmethodsf

Event capture and bubble are two stages of event propagation in DOM. Capture is from the top layer to the target element, and bubble is from the target element to the top layer. 1. Event capture is implemented by setting the useCapture parameter of addEventListener to true; 2. Event bubble is the default behavior, useCapture is set to false or omitted; 3. Event propagation can be used to prevent event propagation; 4. Event bubbling supports event delegation to improve dynamic content processing efficiency; 5. Capture can be used to intercept events in advance, such as logging or error processing. Understanding these two phases helps to accurately control the timing and how JavaScript responds to user operations.

Java and JavaScript are different programming languages. 1.Java is a statically typed and compiled language, suitable for enterprise applications and large systems. 2. JavaScript is a dynamic type and interpreted language, mainly used for web interaction and front-end development.
