Without access to your data we can;'t be certain, buit the most likely reason is that those are string values rather than numeric.
String comparisons are based on comparing each character pair in the two strings starting from the left, the first different pair of characters decides the result for the whole comparison - no further character pairs are examined.
So if you compare the numbers 1 to 100 stored as strings, you get this order:
"1"
"10"
"100"
"11"
...
"2"
"20"
...
Check your data source, and use numeric values instead.