Mycelium starts with the oldest output and adds more until enough value for the transaction was added, then goes through the outputs and checks whether some can get removed again.
If you have outputs, in chronological order, of
5, 5, 1, 5, 1, 20
If you want to send 12, it will select the first 4 ones, then remove the third one, so end up with the first, second and forth. If you want to send 18 it will select all, then remove all but the last one.
So it tries to spend older outputs over newer ones but optimizes to not include unnecessary outputs. A potential feature for some distant future which was discussed would be to have different options for output selection to pick from.