В вашей функции есть несколько ошибок, поэтому я собираюсь переписать и объяснить после:
$('.cloud').each(function(i,d) {
var cloud = $(this);
var randNum = Math.floor(Math.random() * 5000);
setTimeout(function(){
console.log(cloud + ranNum)
}, randNum );
});
Я не понимаю, почему вы пытаетесь вывести cloud
переменную, потому что это будет просто отображать HTMLElement или подобное. Кроме того, вы пытаетесь установить таймер внутри интервала, оба одинаковы, но интервал будет повторяться, таймер будет выводиться один раз.
Если вы пытаетесь вывести на какое облако номеров вы ссылаетесь. Используйте i
вместо cloud
.
Попробуйте определить свои переменные немного чище, это не PHP, воздержитесь от использования $ и не забудьте var для начальных определений и; закончить заявления!
Надеюсь, это помогло.