По моему мнению, лучше, чем возиться с прототипами или объявлять их вовремя, я предпочитаю выставлять их в окно:
window.choice = function() {
if (!this.length || this.length == 0) return;
if (this.length == 1) return this[0];
return this[Math.floor(Math.random()*this.length)];
}
Теперь в любом месте вашего приложения вы называете это как:
var rand = window.choice.call(array)
Таким образом, вы все еще можете правильно использовать for(x in array)
loop