Я так предпочитаю работать с цифрами, а не с числами :-). Как-то так:
function digit_form (num, words) {
	
	num = (num < 10 ? '0' : '') + num;
	var forms = [2, 0, 1, 1, 1, 2, 2, 2, 2, 2], 
	dig = num.split('');
	dig.reverse();
	return num + ' ' + (1 == dig[1] ? words[2] : words[forms[Number(dig[0])]]);
} 
alert(digit_form(Math.round(10 / Math.random()), ['минута', 'минуты', 'минут']));
Так, может, медленнее и неправильнее, но зато код проще. А то голову сломал, разбирая:
return mod100 >= 5 && mod100 <= 20 ? 2 : mod10 == 1 ? 0 : mod10 >= 2 && mod10 <= 4 ? 1 : 2;