Custom List Orders based on Different Data Type

Struggling to work out the logic here to make this work - any advice appreciated.

Data types:

Company (contains list of Showrooms)
Showroom (contains list of Collections)
Collection (contains list of Looks)
Looks (has an image)

RG on page shows list of Collections.

Objective: RG on page should show Collections in a custom order based on which showroom the user is viewing (order set by the showroom creator).

Page is of type Company.
Page has custom state Showroom.

Problem:
Collections can be shared across Showrooms, so I can’t just add a showroom order field on the collection.

How do I make it so the RG sorts the Collections by Showroom Order?

One option I’m thinking is to:
Create a new Showroom Order data type (containing index number for order, Collection, Showroom).
But I can’t sort Collections by this data type. I would have to make the RG data type Showroom Order (where showroom order’s showroom = page showroom), then display this showroom order’s collection’s first look’s image in each cell of the repeating group.

Is this the most efficient way? Or is there a way to keep my RG as type Collections and sort by another field? This would be preferred as there are other issues at play on the page that rely on this RG being of type Collections.

Thanks