es algo más complejo y al mismo tiempo más sencillo. en lugar de usar solamente el método random(), también usamos floor(). de este modo nos aseguramos que el aleatorio nunca sea mayor que el largo de array. también usamos el método splice() para eliminar/retornar el elemento que se encuentra en la posición que equivale al aleatorio generado. de tal manera que al generar el segundo aleatorio, lo hará sobre el nuevo largo del array
Cita: var arr = ['A','B','C','D','E','F','G', resto abecedário];
Array.prototype.aleatorio = function() {
console.log(this.splice(Math.floor(Math.random() * this.length), 1)[0], this.length);
console.log(this.splice(Math.floor(Math.random() * this.length), 1)[0], this.length);
console.log(this.splice(Math.floor(Math.random() * this.length), 1)[0], this.length);
}
window.onload = function() {arr.aleatorio();}