I'm pretty sure the article is wrong. Hold on while I write a little script to test this out.
Edit: Script below; feel free to critique or make modifications where you think they are more realistic.
// Let 1 represent heads and 0 represent tails. coin_state = 1;
number_of_heads = 0;
number_of_tails = 0;
for (i = 0; i < 1000000; i++)
{
// How fast the coin flips (flips per second)
flip_speed = (Math.random() * 10) + 20;
// How long the coin is in the air (seconds)
catch_time = Math.random() + 2.5;
number_of_flips = Math.floor(flip_speed * catch_time);
/* Odd number of flips means coin ends up in opposite state from start (tails in this case). Even number of flips means coin ends up in same state as start (heads in this case) */
if (number_of_flips % 2) { coin_state = 0; }
if (number_of_flips % 2 == 0) { number_of_heads++; }
else { number_of_tails++; }
}
console.log("Heads:", number_of_heads);
console.log("Tails:", number_of_tails);