There are two separate problems tangled together in this thread and they have very different answers.
1. The collection’s default order. This one is solved, with zero front-end change. Set the collection’s sort order to Manual in admin, compute the order you want from the metafield off-platform, and write it back with the Admin API’s collectionReorderProducts : the mutation LiouJason linked. Nothing about your theme, grid or dropdown changes; the products simply come out in the order you decided. Mechanic can do this, as Paul said, and so can any sorting tool that writes to the collection itself.
That distinction is the thing to screen on when you’re evaluating apps: ones that reorder through the Admin API are invisible to your storefront, and ones that inject their own collection grid or search layer are the ones that change your interface. Both get described as “collection sorting apps,” which is why your search has been frustrating.
2. A customer-selectable “sort by my metafield” option in the dropdown. This is the part you’re actually stuck on, and I don’t think anyone has said it plainly yet: it isn’t possible as a sort option. The storefront dropdown just sets ?sort_by=, and Shopify only honours a fixed set of values - manual, best-selling, title-ascending, title-descending, price-ascending, price-descending, created-ascending, created-descending. Adding your own <option> gets you exactly what you saw: it appears in the menu and nothing happens, because Liquid resolves the ordering server-side before your JavaScript ever runs.
The workaround that stays out of your interface is to build two manual collections holding the same products - one ordered by the metafield ascending, one descending — and have those dropdown options navigate to those collection URLs rather than set a sort_by parameter. The select stays exactly where it is, the grid is untouched, and pagination behaves because each one is a real collection. The costs are that you need something keeping the duplicates in sync, and you’ll want canonical tags so the two don’t compete with each other in search.
One thing worth reconsidering while you build it: a hand-maintained 0–100 score is accurate the week you set it and drifts after that. It often works better as a coarse band than as a full ordering — products scored 80+ first, then 40–79, then the rest, with each band internally ordered by something that updates itself like sell-through or revenue per impression. You keep the editorial control the score gives you without re-scoring the catalogue every month.
Disclosure: I’m at Seventh Triangle and we build Every Possible Collection Sort ( Every Possible Collection Sort - Auto-sort collections by bestsellers, revenue, stock and price | Shopify App Store ) - metafield ordering with tiebreakers, written back through the Admin API so nothing on the storefront changes. Pricing is on the listing. It covers part 1 well. It will not give you part 2, and nor will any other background sorting app, so I’d rather you hear that before you install anything.