重複なしの乱数生成

夏のインターンで必要になり作ったやつです.ファイル整理してたらでてきたのでメモがわりにうp.
0〜num-1までの整数を重複なしにnum個生成するプログラムです.
値は配列に格納されます.

プログラム

//重複なしに乱数を発生させるプログラム
function random_num(num){
	//乱数の配列生成
        var random = new Array();
	for (i = 1; i < num; i++) {
	  random[i]=Math.floor(Math.random()*num);
	}
	var j;
	random[0]=Math.floor(Math.random()*num);

    //配列内に重複してるものがあるか探査.あったら重複しなくなるまで乱数発生
	for (i = 1; i < num; i++) {
	  j = 0;
	  while(j<i){
	    while(random[i] == random[j]){
	      random[i]=Math.floor(Math.random()*num);
	      j=0;
	    }
	    j++;
	  }
	}

	return random;
}