Guild Order allows you to set custom order for your guilds everywhere (Guild Tab, Guild Bank, Chat and Settings) except
incompatible* addons.
Dependency:
LibAddonMenu - OrderListBox widget
The way the addon works is very intrusive: it replaces one of the core functions (GetGuildId) with its own. But with some adjustments I made, everything seems to work (for now).
*Incompatibility
TL;DR: I disabled custom guild order for some of the most popular chat addons, so they should work without issues.
Most (if not all) chat addons (pChat, rChat, Lilith's Group Manager, etc.) rely on the fact that guild with index 1 (default Guild 1) is associated with Chat Channel 1, which is no longer the case with Guild Order. Therefore without some changes you can face oddities like messages going to the wrong channel. It can be easily fixed by other addon authors with Guild Order API (check main file). Fortunately, there is a way to "feed" those addons the original GetGuildId function from my addon, so they should work fine (or almost fine). Guilds will have their default order in those addons' settings, though.
Bonus feature:
I doubt that many people noticed auto complete not working when typing /guild1, /group, /emote, etc. But actually it's supposed to work, because there is code for it. It contains a mistake I randomly found and fixed while creating this addon
Feel free to report any issues in comments, but keep in mind that I can't "fix" other addons except for adding them to exceptions.