I had posted my observation in a previous (closed) post but want to state (once more) that this issue has not been resolved. Expiry timers still display the flasks in random order.
Since (I'm fairly sure) the donated flasks are stored in an array, it would appear that they are not stored after the last entry but rather, are placed in the first available empty spot in the array. To correct this, an efficient way of updating the array would be to sort and/or compress the array BEFORE placing a new gift at the END of the array.
It's so frustrating to have to step through the entire list (onscreen) to find the entries that are closest to expiry time. I am a part of an active clan who are faithful in donating flasks and I can only play one or two sessions in a day. My gift box can have as many as 25-35 new entries and that's a lot of frustration just scanning for the oldest flasks!
Hope this outline helps you in diagnosing the problem.
Best regards...