How does the Bridge Edge Loops function determine the order in which to process curves when more than two curves are processed at one time?

I have a long list of curves that I would like to bridge into a surface with the z-dimension determining the ordering (in my case each curve is planar with a unique z so this is well-defined), but sometimes the function uses a different order. What can I do to ensure the ordering that I need?

For example, here are three curves bridged into the surface that I would like (order 1-2-3):

but a small change in the bottom curve results in the surface instead becoming (order 1-3-2):

Any tips would be appreciated, thanks.