You could add a select field for the “priority” of the pages and then use ->sortBy("priority", "desc").
Another option would be a structure or list field on the parent page that includes all the pages (updated by a hook) so you can use drag and drop to rearrange.
It’s very similar to my problem here which was solved similarly.