Это потому, что присвоение выполняется только один раз, и вы, вероятно, снова печатаете переменную с тем же значением.
Вы можете сделать что-то вроде этого, когда функция возвращает случайное число каждый раз, когда вы вызываете его:
var num = function() {
return Math.floor(Math.random() * 4);
}
console.log(num());
console.log(num());
console.log(num());