When you create a transaction you need to gather up enough unspent transaction outputs to cover the amount you want to spend.
The class that does it in MultiBit HD is a bitcoinj class called DefaultCoinSelector. Here are the relevant comments as to which transaction outputs gets chosen:
// Sort the inputs by age*value so we get the highest "coindays" spent.
// Now iterate over the sorted outputs until we have got as close to the target as possible or a little
// bit over (excessive value will be change).
Thus it is predictable, but not particularly obvious.