이 번역은 완료되지 않았습니다. 이 문서를 번역해 주세요.

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 Latest Draft (ECMA-262)
The definition of 'Math.random' in that specification.
Draft  

브라우저 호환성

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

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,