daleko temu od optymalnego rozwiazania (I think, ale funkcja wykonuje to o co prosiles):
Kod
<script>
//generates random integer <start, end)
function rand(intStart, intEnd) {
return intStart + Math.floor(Math.random() * (intEnd - intStart));
}
function right6Generator(intStart, intEnd) {
var arrNumbers = new Array();
var i = 0;
while (intStart <= intEnd) {
arrNumbers[i++] = intStart;
arrNumbers[i++] = intStart++;
}
/*document.write('------------arrNumber--------------<br />');
for (i = 0; i < arrNumbers.length; i++) {
document.write(arrNumbers[i] + '<br />');
}*/
var arrResult = new Array();
for (i = arrNumbers.length - 1; i >= 0; i--) {
intIndex = rand(0, i + 1);
arrResult[i] = arrNumbers.splice(intIndex, 1);
}
/*document.write('------------arrResult--------------<br />');
for (i = 0; i < arrResult.length; i++) {
document.write(arrResult[i] + '<br />');
}*/
return arrResult;
}
</script>
wykorzystanie (dla twojego przykladu):
Kod
right6Generator(1, 20);
edit: wykomentowane czesci kodu mozesz usunac, sluza tylko do debugowania...