Building two new lists (index_list and sorted_list) will have an impact on performance, Adam. Another way to approach this is to sort the existing list in place.
The following routine, for example, is about 130% faster here:
to sort_items from l
tell (count l) to repeat with i from (it - 1) to 1 by -1
set s to l's item i
repeat with i from (i + 1) to it
tell l's item i to if s > it then
set l's item (i - 1) to it
else
set l's item (i - 1) to s
exit repeat
end if
end repeat
if it is i and s > l's end then set l's item it to s
end repeat
end sort_items
set theDates to {date "Thursday, June 1, 2006 12:00:00", date "Tuesday, February 1, 2005 12:00:00", date "Monday, January 1, 2007 12:00:00", date "Monday, May 1, 2006 12:00:00", date "Sunday, December 25, 2005 12:00:00", date "Sunday, September 24, 2006 12:00:00", date "Saturday, August 12, 2006 12:00:00"}
sort_items from theDates
theDates --> {date "Tuesday, February 1, 2005 12:00:00", date "Sunday, December 25, 2005 12:00:00", date "Monday, May 1, 2006 12:00:00", date "Thursday, June 1, 2006 12:00:00", date "Saturday, August 12, 2006 12:00:00", date "Sunday, September 24, 2006 12:00:00", date "Monday, January 1, 2007 12:00:00"}
(As discussed previously, some form of referencing will help on substantially longer lists - but that’s not really a concern with a list of this size.)