In a double spend attempt, how is the valid transaction chosen? Suppose I publish the private key of an address that contains 1 bitcoin. If two people try to transfer this bitcoin to another address before a new block is found, who gets it? How is this decision made?
When a node receives two conflicting transactions, it will only relay the first one that it received, dropping the other.  If one transaction fully propagates through the network before the other is sent, the first will prevent the second from ever reaching any miner nodes.

If both transactions are sent at roughly the same time, the network will be in disagreement about which one is valid.  This will be resolved once a miner node finds a block and includes whichever transaction it had first heard about.