I've got this working but it seems terribly verbose to do something, that in my opinion should be easier.
Is there a better way to get the assets from 2 different fields, merge them and output them in a random order?
{% set clientLogos = logos.clientLogos.all() %}
{% set agencyLogos = logos.agencyLogos.all() %}
{# set empty array #}
{% set logoIds = [] %}
{# add logos from clients #}
{% for logo in clientLogos %}
{% set logoIds = logoIds|merge([logo.id]) %}
{% endfor %}
{# add logos from agencies #}
{% for logo in agencyLogos %}
{% set logoIds = logoIds|merge([logo.id]) %}
{% endfor %}
{# looped through merged logos #}
{% for logo in craft.assets().volume('uploads').kind('image').id(logoIds).orderBy('RAND()') %}
<img src="{{ logo.url(croppedlogo) }}" alt="{{ logo.title }}" class="m-4"/>
{% endfor %}