/*
`Math.random` returns a pseudo-random number between 0 and 1.
a pseudo-random number is generated by an algorithm, it is not
technically actually random, but for all intents and purposes
it is random enough that no human should be able to find a
pattern
*/
Math.random(); // -> Decimal number between 0 and 1
Math.round(Math.random()); // -> 0 or 1
Math.random() * max; // -> Decimal number between 0 and max
Math.floor(Math.random() * max); // -> Whole number between 0 and max - 1
Math.round(Math.random() * max); // -> Whole number between 0 and max
Math.ceil(Math.random() * max); // -> Whole number between 1 and max
(Math.random() * (max - min)) + min; // Decimal number between min and max
Math.floor((Math.random() * (max - min)) + min); // Whole number between min and max - 1
Math.round((Math.random() * (max - min)) + min); // Whole number between min and max
Math.ceil((Math.random() * (max - min)) + min); // Whole number between min + 1 and max
Math.random() * Math.random(); // Decimal number between 0 and 1 with a tendency to be smaller
1 - Math.random() * Math.random(); // Decimal number between 0 and 1 with a tendency to be larger