javascript 中的 Math.random 本身並沒有問題, 問題是使用者後繼的操作.
因為通常 random 也使用於 array 身上作取值,
[js]var YourArray=["a","b","c"]; // 如果希望於 YourArray 中任意抽取一值作輸出.
Math.round(Math.random(YourArray.length-1)); // 這樣就發現 "a" 差不多不出現
/*
因為 "a" 的機率只有 0 ~ 0.49 因為四捨五入的關係
所以為了提升各整數數值的 random 機率, 應該另寫 function 負責. */[/js]
[js]/*************
Random Number : more balance
*************/
function randomNum(_start,_end){
// include _end number.
var _range = 10;
var _rtn=0;
if(_start==null) _start=10;
if(_end==null){ _end=_start; _start=0; };
while( Math.abs(_end-_start)>_range ){ _range*=10; }
var _tmp = Math.random()*_range;
_rtn = Math.ceil(_tmp/(_range/(_end-_start+1)))+_start-1;
// $.debug("start:"+_start+", end:"+_end+" return:"+ _rtn+"("+_tmp+")");
return _rtn;
}[/js]