Increasing the difficulty was exactly the point. As the request stood it was not enough fun.
As far as placing 'nil' in-between, I do not see the need but the OP must.
As far as "list sorting" goes, sorting does not always mean smallest to greatest so it is NOT contradictory.
Example:
Here is a sorted list.
(84 104 101 32 110 117 109 98 101 114 32 115 101 118 101 110)
What would happen if you change the order?
hint:
(mapcar 'chr '(84 104 101 32 110 117 109 98 101 114 32 115 101 118 101 110))
The point being, in cases like this lists should be treated as that. In essence I question the need for sorting itself; programs should be able to chew up data and ignore the things it doesn't care about.
For example: parsing a string.
To parse a string you look for tokens, you chunk up bits at a time looking for a pattern. Spaces--more often then not--are not really part of that pattern so should I remove all the 32's from the list above before I process it (looking for a number string). No, that would take up far too much processing power on a large list/string. It's far more efficient to write your list processing widget to just ignore them and anything else you don't care about.