Here you can find the source of random()
Array.prototype.random = function () { return this[ (Math.random() * this.length).floor() ]; };
Math.randomInt = function (min, max) { return Math.floor(Math.random() * (max - min +1)) + min }; Array.prototype.random = function () { return this[Math.randomInt(0, this.length-1)];
Array.prototype.random = function() { if (!this.length) return; return this[Math.floor(Math.random() * this.length)]; };
Array.prototype.random = function () { return this[Math.floor((Math.random()*this.length))]; };
Array.prototype.random = function() { if (Object.prototype.toString.call(this) !== '[object Array]') { throw new TypeError("`this` must be Array, not " + typeof this); return this[Math.floor(Math.random() * this.length)]; };
Array.prototype.random = function() { return this[ Math.randomInt( 0, this.length - 1 ) ]; };
Array.prototype.random = function() { if (!this.length) { return null; } return this[Math.floor(ROT.RNG.getUniform() * this.length)];
Array.prototype.random = function(){ return this[sb.math.rand(0,this.length)]; };
Array.prototype.random = function() { return this[Math.floor(Math.random() * this.length)]; };
Array.prototype.random = function() { return this[Math.rand(0, this.length)];