In BA we bid for the seats / fleets we want annually. There are various freezes, which BA may waive at their discretion, but a freeze does not stop you bidding. There are also some "requirements" for certain fleets / seats (ATPL for LH, Command, hours, medical etc.)
For those eligible to bid, then courses are allocated by seniority. Of course, having got an a course, particularly a Command Course, it is no guarantee to pass.
There are couple of hoops and maybe some more coming, but essentially you are bidding purely by seniority.