Let me guess, the field is varchar or text. If it is the ordering is correct. The database looks at the first character and order by that. When there are two that are at the same place it looks at the second character and orders by that as well. And so on. According to this it is ordering correctly.
I can only assume that you want it to order by the value instead, to get 0, 1, 2, 3, ... 11, 12, 13 and so on. If that is correct you should use another data type, int or long for example.