"Yes. You can store two arrays, sort one array as needed, carry the other array in memory, kind of like a backup. Then just replay the other referenced array back out as needed."
How do I do that?

Resorting to original order is one of the problems to solve, since the the list is being sorted then items are being removed.