Bicalutamide is a selective silent androgen receptor agonists, meaning it actually act as a androgen. It binds to the androgen receptor and activates it, but it activates it much less than testosterone and dihydrotestosterone. So it binds to the androgen receptors and takes up the place were testosterone and DHT would attach, so you ultimately end up with less androgen signal transduction - but not zero. Since it is selective for the AR, it does not act as a estrogen or antiestrogen for example. So, since it only reduces AR signal transduction it will not affect testicle function through the brain pathway. It actually increases testosterone production which increases estrogen levels because of increased aromatization from testosterone (testosterone converts to estrogen through an enzyme - so more testosterone = more estrogen). Androgen receptors regulate how sensitive estrogen receptors are, so if you reduce androgen receptor activation you could potentially get side effects. So if you combine increased estrogen + inhibition of androgen signal transduction, the result is that you will most likely have a very high chance of getting gynecomastia - even if you do not take exogenous estrogen.
The problem with bicalutamide is that even though it does not reduce androgen levels, it still inhibits them from working properly. So you could still have some sort of sexual side effects. The good part is that your testicles will most likely not reduce that much in size and function - so I would guess you have a longer timeframe before you could have long lasting or permanent sexual side effects, if you have any at all. This is probably the reason why drugs such as bicalutamide is preferred in males with prostace cancer.
https://www.ncbi.nlm.nih.gov/pubmed/11260298
Spironolactone is a androgen receptor antagonist that blocks signal transduction. The result is similar to bicalutamide, just not quite the same mechanism. But it is also a weak steroidogenesis inhibitor. From what I've read, it inhibits the cholesterol cleavage enzyme so it inhibits steroidogenesis at the very start - so you could possibly get some sort of reduction in several types of steroids. It is classified as a anti-mineralocorticoid, perhaps it is through this mechanism (I'm not quite sure). It probably reduces testosterone and estrogen significantly because of this - also since it also inhibits steroid enzymes further down the steroid metabolic pathway. Probably not that much like cyproterone acetate, cause cyproterone acetate have from what I've read extra steroidogenesis inhibition on especially the steroids testosterone (+ DHT) and estrogens because it also have progestogenic effects that leads to antigonadotropic effects in the brain = less production of testosterone (= reduced estrogen levels) and sperm production in the testicles.
So in the end, I would say this is the best against sexual side effects (going from left to right):
Bicalutamide (or similar antiandrogens) > Spironolactone > Cyproterone acetate/GNrH antagonists.
You have to look for antiandrogens that are either selective androgen receptor antagonists or selective androgen receptor silent antagonists. The higher selectivity, the better - so cost and availability is probably your main concern.
But for side effects like gyno, the best is probably (going from left to right):
Spironolactone > Cyproterone acetate > Bicalutamide.
Maybe I'm wrong at some point or have not pointed out ALL the effects of these drugs (I would have to write pages), so take my words with a grain of salt. I have read some studies on the different side effect profiles of these different drugs, so I'm pretty sure (but not 100%).