Как упростить код дразнилки на JavaScript? (новичок)

let randomBodyPart = ["видок", "лицо", "походняк"];
let randomAdjective = ["вонючий", "унылый", "недобитый", "пришибленный"];
let randomWords = ["мурлокотан", "долбик", "древопитек"];
let randomBodyPart$ = randomBodyPart[Math.floor(Math.random()*randomBodyPart.length)];
let randomAdjective$ = randomAdjective[Math.floor(Math.random()*randomAdjective.length)];
let randomWords$ = randomWords[Math.floor(Math.random()*randomWords.length)];
let result = `У тебя ${randomBodyPart$}, как-будто ты ${randomAdjective$} ${randomWords$}`;

попытался упростить так:

let randomBodyPart = ["видок", "лицо", "походняк"];
let randomAdjective = ["вонючий", "унылый", "недобитый", "пришибленный"];
let randomWords = ["мурлокотан", "долбик", "древопитек"];
let randomizer$ = Math.floor(Math.random()*this.length);
let result = `У тебя ${randomBodyPart[randomizer$]}, как-будто ты ${randomAdjective[randomizer$]} ${randomWords[randomizer$]}`;

Но "так" не работает сам гсч, я видимо не правильно понял принцип работы "this".
PS:
есть ли какой-то аналог "this", что бы использовать его по принципу:

let randomizer$ = Math.floor(Math.random()*this.length);

Ответы (4 шт):

Автор решения: MoloF

const bodyPart = ["видок", "лицо", "походняк"];
const adjective = ["вонючий", "унылый", "недобитый", "пришибленный"];
const words = ["мурлокотан", "долбик", "древопитек"];

Array.prototype.random = function() {
  return this[Math.floor(Math.random()*this.length)];
}

const randomBodyPart = bodyPart.random();
const randomAdjective = adjective.random();
const randomWords = words.random();

p.innerHTML = `У тебя ${randomBodyPart}, как-будто ты ${randomAdjective} ${randomWords}`;
<p id="p"></p>

→ Ссылка
Автор решения: MoloF

const bodyPart = ["видок", "лицо", "походняк"];
const adjective = ["вонючий", "унылый", "недобитый", "пришибленный"];
const words = ["мурлокотан", "долбик", "древопитек"];

function randomElementFromArray() {
  return this[Math.floor(Math.random()*this.length)];
}

const randomBodyPart = randomElementFromArray.call(bodyPart);
const randomAdjective = randomElementFromArray.call(adjective);
const randomWords = randomElementFromArray.call(words);

p.innerHTML = `У тебя ${randomBodyPart}, как-будто ты ${randomAdjective} ${randomWords}`;
<p id="p"></p>

→ Ссылка
Автор решения: MoloF

const bodyPart = ["видок", "лицо", "походняк"];
const adjective = ["вонючий", "унылый", "недобитый", "пришибленный"];
const words = ["мурлокотан", "долбик", "древопитек"];

const randomElementFromArray = (array) =>
    array[Math.floor(Math.random()*array.length)];

const randomBodyPart = randomElementFromArray(bodyPart);
const randomAdjective = randomElementFromArray(adjective);
const randomWords = randomElementFromArray(words);

p.innerHTML = `У тебя ${randomBodyPart}, как-будто ты ${randomAdjective} ${randomWords}`;
<p id="p"></p>

→ Ссылка
Автор решения: Олег

let randomBodyPart = ["видок", "лицо", "походняк"][Math.floor(Math.random()*3)];
let randomAdjective = ["вонючий", "унылый", "недобитый", "пришибленный"][Math.floor(Math.random()*4)];
let randomWords = ["мурлокотан", "долбик", "древопитек"][Math.floor(Math.random()*3)];
let result = `У тебя ${randomBodyPart}, как-будто ты ${randomAdjective} ${randomWords}`;
alert(result);

А можно и вообще в виде одной строчки:

let result = `У тебя ${["видок", "лицо", "походняк"][Math.floor(Math.random()*3)]}, как-будто ты ${["вонючий", "унылый", "недобитый", "пришибленный"][Math.floor(Math.random()*4)]} ${["мурлокотан", "долбик", "древопитек"][Math.floor(Math.random()*3)]}`;
alert(result);

→ Ссылка