如何使用javascript生成随机数而不重复相同的数字?

如何使用javascript生成随机数而不重复相同的数字?,javascript,html,Javascript,Html,如何生成随机数1到3,而不重复相同的数字。 这是我的代码: function randomFromInterval(from,to) { var rancalue=Math.floor(Math.random()*(to-from+1)+from); return rancalue; } var rannumber=randomFromInterval(1,3); 创建一个按顺序排列所有数字的数组 按照问题中描述的顺序随机排列数组 迭代数组。 从以下位置使用随机播放功能: 如果不介意销毁

如何生成随机数1到3,而不重复相同的数字。 这是我的代码:

function randomFromInterval(from,to)
{ 
var rancalue=Math.floor(Math.random()*(to-from+1)+from);  
return rancalue;
}
var rannumber=randomFromInterval(1,3);
创建一个按顺序排列所有数字的数组 按照问题中描述的顺序随机排列数组 迭代数组。
从以下位置使用随机播放功能:


如果不介意销毁阵列,可以从阵列中拼接随机成员:

var getOne = (function(arr) {
  return function() {
    return arr.splice(Math.random()*arr.length|0,1);
  };
}([1,2,3]));
如果要在数量用完后再次启动,请保留原始阵列,并在拼接阵列的成员用完时复制它:

var getOne = (function(original) {
  var arr = [];
  return function() {
    if (!arr.length) arr = original.concat();
    return arr.splice(Math.random()*arr.length|0,1);
  };
}([1,2,3]));

你需要洗牌吗?嗨,请记得先用谷歌搜索。搜索如何生成随机数时的第一个结果,而不使用javascript再次重复相同的数字?应该回答您的问题。@DanielA.White是正确的-将数字1、2和3放入一个数组中,然后洗牌该数组。感谢您的帮助。实际上,这是一种比我建议的更好的方法。1+用于不需要进行不必要的检查。您只需随机选择阵列中的一个成员,无需洗牌,类似于arr.patchemath.random*arr.length | 0,1.你能用jsfiddle发送吗?只是喜欢那些没有礼貌地提供解释的被否决的选民。这不起作用……你说它不起作用是什么意思?
var getOne = (function(original) {
  var arr = [];
  return function() {
    if (!arr.length) arr = original.concat();
    return arr.splice(Math.random()*arr.length|0,1);
  };
}([1,2,3]));