현재 번역은 완벽하지 않습니다. 한국어로 문서 번역에 동참해주세요.
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) |