You haven't provided much for anyone to help but I'm willing to bet the likely issue is that your listbox is treating your numbers as strings so once you start getting into stuff > 9, your order by gets funky (Ex: 1, 10, 2,3,4,5,6,7,8, 9).
Because i'm lazy and don't feel like putting this into visual studio this code snippet may be buggy, but part of learning is figuring things out for yourself...so if it doesn't compile/run...google is your friend.
var listbox = new ListBox();
listbox.Items.Add("1");
listbox.Items.Add("2");
listbox.Items.Add("3");
listbox.Items.Add("4");
listbox.Items.Add("5");
listbox.Items.Add("6");
listbox.Items.Add("7");
listbox.Items.Add("8");
listbox.Items.Add("9");
listbox.Items.Add("10");
listbox.Items.Add("11");
listbox.Items.Add("12");
var orderedItemsOption1 = listbox.Items.Select(m=> Convert.ToInt32(m)).OrderBy(m=> m);
var listBoxToIntItems = new List<int>();
foreach(var item in listbox.Items)
{
listBoxIoIntItems.Add(Convert.ToInt32(item));
}
var orderedItemsOption2 = listBoxToIntItems.Orderby(m=>m);
Those are 2 options of propbably quite a few for you to convert your listbox of items into an integer and have the order by function properly.
You need to look into Convert.ToInt32 and decide what method of converting strings to integers works best for you...Convert.ToInt32 will explode if you try and pass in say..."A" to it.