According to National Mah Jongg League rules, if 2 or more players call for the same tile:

  • The player closest to the discarding player (in counter-clockwise order) takes precedence
  • If a player is calling for Mah Jongg, they take precedence over players calling for an exposure


So discard allocation is not based on speed of calling/ignoring a discard (if it was, the bots would always get it since they play so fast), but your seating location in relation to the discarder, and whether the call is for mah jongg or not. Bots play just like real people, so they also have the same opportunity to call a discarded tile. The system will wait until everyone has "voted" before allocating the discard (as it needs to check who's closest to the discarder and whether a player is calling for MJ, in which case they'd get the tile).