# Random Numbers

A typical question asked in "History of JavaScript" classes where the teacher mistakenly believes they are teaching programming.

### Question:

Extract all of the numbers from an array in random order without repeating any of the numbers. The array consists of the numbers 0 through 9 so that in the original array the numbers appear in the corresponding numeric positions within the array.

``var items = Array(0,1,2,3,4,5,6,7,8,9), a, i, n;n = items.length;while( n > 0 ) {a = Math.floor( Math.random()* n );document.write(items[a]);for ( i = a; i <= n; ++i ) {items[i] = items[i+1];}--n;}``

When I saw someone asking for help with this question they had used splice in their answer and the teacher had asked them to write it without using splice. In fact that was about the only modern JavaScript command they had actually used while just about everything else in the code was long obsolete.

Here the historical answer has been modified from what that person had used to only use the historical and obsolete commands that the teacher wanted.

``<div id="items"></div><script>Array.prototype.shuffle = function() {var r=[],c = this.slice(0);while (c.length) r.push(c.splice(Math.random() * c.length, 1));return r;};Array.prototype.populate = function(n) {return Object.keys(Object(0+Array(n)));};var x = [].populate(10);document.getElementById('items').innerHTML = x.shuffle().join('');</script>``