MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Math.random()

현재 번역은 완벽하지 않습니다. 한국어로 문서 번역에 동참해주세요.

Math.random() 함수는 [0, 1) 범위(0을 포함하면서 1 보다는 작은)의 의사랜덤(pseudo-random) 수를 부동소수점(floating-point)으로 반환하고, 이를 원하는 범위로 스케일(scale)할 수 있다. 난수(random number) 생성 알고리즘의 초기 시드(seed)는 구현(implementation)에서 선택한다; 이는 사용자에 의해 선택되거나 초기화될 수 없다. 

유의: Math.random()은 암호적으로 안전한 난수를 제공하지 않는다. 보안과 관련된 어떤 것에도 이를 사용하지 말아라. 
그대신 Web Crypto API 를,  더 정확하게는 window.crypto.getRandomValues() 메소드를 이용하라.

문법

Math.random()

예제

Math.random() 사용

JavaScript 의 수(number)는 IEEE 754 부동소수점 수( with round-to-nearest-even behavior ) 이기 때문에, 아래 함수들( Math.random() 자체에 대한 것은 제외 )에 명시된 범위는 정확하지 않음을 유의하라. 만약 극도로 큰 범위가 선택된다면 (253 또는 그 이상), 매우 드물게 to calculate the usually-excluded upper bound 것이 가능하다.

// 0 (포함) and 1 (불포함) 난수를 반환
function getRandom() {
  return Math.random();
}
// min (포함) 과 max (불포함) 사이의 난수를 반환
function getRandomArbitrary(min, max) {
  return Math.random() * (max - min) + min;
}
// min (포함) 과 max (불포함) 사이의 임의 정수를 반환
// Math.round() 를 사용하면 고르지 않은 분포를 얻게된다!
function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min)) + min;
}
// min (포함) 과 max (포함) 사이의 임의 정수를 반환
// Math.round() 를 사용하면 고르지 않은 분포를 얻게된다!
function getRandomIntInclusive(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

명세

Specification Status Comment
ECMAScript 1st Edition (ECMA-262) Standard Initial definition. JavaScript 1.0 (UNIX Only) / JavaScript 1.1 (All platforms).
ECMAScript 5.1 (ECMA-262)
The definition of 'Math.random' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Math.random' in that specification.
Standard  
ECMAScript 2017 Draft (ECMA-262)
The definition of 'Math.random' in that specification.
Draft  

브라우저 호환성

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

문서 태그 및 공헌자

 이 페이지의 공헌자: gamzza, maytree
 최종 변경: gamzza,