This is such a common need that the generalized answer needs to be stated, despite the age of this particular question. Whenever sorting by something Sheets cannot natively understand, one should provide a mapping between the values and some equivalent ordinal numbering.
For neatness perhaps do this on another Sheet "tab" in the same file. Create your mapping from the real-world values and their numerical equivalent—in this case, a list of ranks. A tiny subset, for example:
Then back in your main list's sheet, you can just add a column where each person's rank will be automatically looked up and shown via a formula. Here, I did so in the new Tier column:
Then a formula such as the following can check each row's rank, match it up with the equivalent order number from the other sheet, and show that number here. This column may then be used for sorting, and either hidden or deleted.
Several formulas could be used, but in that example, in D2 I used VLOOKUP to take column A's text "Captian", find it in the Ranks sheet, and show Captian's corresponding order number, 21. After dragging that formula down the column, each Rank will be converted into it's matching order number, making the entire sheet ready for easy sorting.