At the moment there is little possibility to easily achieve custom ordering of items of a collection.
Outside in the CMS world—and I'm taking Drupal as an example—custom ordering is quite always achieved the same way: there is a custom "order" field, that is updated anytime the order of items is manually changed in a backend section. Editors will manually reorder items by dragging them up and down the list, and the value of the order field is updated after each drag. In the template, the list is set to be sorted depending on this order field.
A very popular module to do this on Drupal can be seen here: https://www.drupal.org/project/nodeorder
A list and comparisons of the ordering modules can be seen here: https://www.drupal.org/node/398508