How does the A320 FMGC (autothrust, autopilot) decide which radio altimeter readings to use?
First of all, RA1 is showed on the captain PFD and RA2 is showed on the F/O PFD. If one is detected as failed, the functional one is showed in both PFDs. This behavior is fixed, there is no way for the pilots to change it (instead, you can change the IR and ADR data with the relative knobs on the pedestal).
Now, two questions bring up:

How the system detects a failure in one RA if you have only 2 RAs and it cannot perform voting?

In this case, the only way to detect the failure is the self-detection, i.e. the control hardware and software specific to each RA performs the sanity checks. Since you cannot vote, there is no way to externally detect which one failed if they disagree (unless you cross-check with other data like database terrain or similar, but I doubt it does that). The disagreement triggers the ECAM message &quot;NAV RA DEGRADED&quot;.

What the systems (GPWS, GLS, windshear, FWC, etc.) use if the two RAs disagree?

According to this Airbus document:

GPWS uses RA1
AP1/FD1 uses RA1
AP2/FD2 uses RA2

It doesn't state about other systems using RAs, probably they use only one side like GPWS and AP. At least these systems use RA information: reactive windshear, GLS autoland, TCAS, ROW, because in case of RA1+2 failure they are on the INOP SYS list. The FWC (Flight Warning Computer) is also using the RA signals to compute the flight phase (for example, to inhibit certain ECAM messages on takeoff and final). I can't find any information on FWC, it probably just disables message inhibition.
Differently it is in the A380, where you have 3 RAs, so they can vote, and all the systems use to the same value.