How to decide between two numbers randomly using javascript?

Solution 1:

The Math.random[MDN] function chooses a random value in the interval [0, 1). You can take advantage of this to choose a value randomly.

var chosenValue = Math.random() < 0.5 ? value1 : value2;

Solution 2:

Math.round(Math.random()) returns a 0 or a 1, each value just about half the time.

You can use it like a true or false, 'heads' or 'tails', or as a 2 member array index-

['true','false'][Math.round(Math.random())] will return 'true' or 'false'...

Solution 3:

~~(Math.random()*2) ? true : false

This returns either 0 or 1. "~~" is a double bitwise NOT operator. Basically strips the the decimal part. Useful sometimes.

It is supposed to be faster then Math.floor()

Not sure how fast it is as a whole. I submitted it just for curiosity :)

Solution 4:

parseInt(Math.random() * 2) ?  true : false;