Не все фильтры принимают всевозможные полусписки. (т.е. структуры данных, которые могут действовать как список, но не являются, примеры поиска и списки ресурсов являются примерами.)
Вы можете заставить значение быть списком, а затем применить случайный фильтр:
{% media m.rsc[id].banner|make_list|random %}
Также используется тот факт, что {% media %}
для неопределенного значения возвращает пустой список.