RandomSampling(all_count, sample_count) {
if (!sample_count) {
// サンプリングする数が指定されてない場合
// すべてサンプリングする。
sample_count = all_count;
}
var ret = new Array(sample_count);
var numbers = new Int32Array(all_count);
for (var i = 0; i < all_count; i++) {
numbers[i] = i;
}
for (var i = 0; i < sample_count; i++) {
var n = this.getRandomInt(0, all_count - i - 1);
ret[i] = numbers[n];
numbers[n] = numbers[all_count - i - 1];
}
//for (var i = 0; i < sample_count; i++) {
// for (var j = i + 1; j < sample_count; j++) {
// Assert(ret[i] != ret[j], "Random-Sampling");
// }
//}
return ret;
}