Math.random() в цикле each(). Как сделать чтобы в каждой итерации число было рандомным?
Вы хоть и выполняете рандом для каждого program-link, но назначаете этот рандом не к текущему элементу, а к всем. Код $('.program-link img') берет все элементы img из program-link. т.е. каждую итерацию, вы создаете случайный поворот, и назначаете его ко всем картинкам. В итоге, после работы скрипта, все картинки имеют один угол поворота - последний сгенерированный. 
Вот так лучше:$(document).ready(function () {
        $('.program-link').each(function(){
            var degree = Math.random() * (5 + 5) - 5;
            $(this).find('img').css( // берем картинку только из текущего .program-link
                {transform: 'rotate(' + degree + 'deg)'}
            )
        });
    });
Так вы в каждой итерации задаёте угол для всех картинок.