From a purely technical level, yes, you can let the machine sort it -- if the strings are stored in a database system or even a text file, the table or the text file will be using the same character set. Let's say this this list is all unicode; if your base server locale is en, then I think (I just did a quick test) the unicode sort would come out to be:
- English
- Русский
- მარგალური
- עברית
- العربية
- አማርኛ
- বিষ্ণুপ্রিযা় মণিপুরী
- 日本語
But from a UX perspective, you want the sorting to make sense to your user and not to the machine, so you could approach it like Wikipedia and others do, and order by English transliteration while actually displaying the localized language name (e.g. Русский is alphabetized under "R"). I've not observed users working directly with a list quite as long as the 100 you have, but my gut tells me that's a little long to have users scan through to find their specific language when it's ordered in a potentially unfamiliar way. Breaking into regions could very well help with that.
Something I've done in the past and has worked well -- but requires additional translation work for more localized strings -- is to localize the language selection menu based on the locale being viewed.
Your English menu would show:
But when viewing the localized Russian site, the language menu would show:
1 country = 1 language
.