Riccardo Spagni said in an interview somewhere (I will edit this if I find the right one) that MyMonero uses a different input selection algorithm than the official CLI and GUI wallets. How are the other inputs selected in MyMonero, and why is a different selection mechanism used?
Note: I am currently maintaining the Mymonero backend.
Mymonero currently selects outputs at random over the complete set of possible outputs. So guessing the real output is not necessarily trivial. The wallets try to select dummy outputs with a bias towards newer outputs, based on research indicating that there is a bias towards the real output being spent shortly after receival. Mymonero uses this alternative algorithm primarily due to historical significance (i.e. some past maintainer implemented it that way). I honestly did not think about this portion of the code until someone pointed it out to me ~2-3 months ago - it was in the "if it ain't broke, don't fix it" category previously.
More recently it has not changed because the required APIs from the daemon are binary and the web-facing client is written in GO. So grabbing the information is not "dead-simple". I was hoping the ZeroMQ patches would make it into v0.11 so that all calls into the daemon could be updated at the same time. But that patch didn't make it into the last release, so an interim solution may have to be applied now.
UPDATE: mymonero now uses the
get_random_outs RPC from a
I am not sure what is the method used by MyMonero but the reason to be diferent of the core its because its developed separately, the devs are not the same.. Tecnacly you could choose the inputs to mix with yours by hand, but I belive that there is no wallet allowing this at the momment