Applesoft, 29 oops, 32 bytes
A little "retrocomputing" example. Bear with me, I'm brand new at this. I gather that what is designated as the "input" need not be byte-counted itself. As stated in the OP, the input would be given as "ABCD". (I didn't initially realize that I needed to specify input being obtained, which added 4 bytes, while I golfed the rest down a byte.)
INPUTI$:X=RND(1)*4:PRINTMID$(I$,(X<.5)+X+1,1)
The terms INPUT, RND, PRINT and MID$ are each encoded internally as single-byte tokens.
First, X is assigned a random value in the range 0 < X < 4. This is used to choose one of the characters from I$, according to (X < .5) + X + 1. Character-position value is taken as truncated evaluation of the expression. X < .5 adds 1 if X was less than .5, otherwise add 0. Results from X break down as follows:
A from .5 ≤ X < 1 = 12.5%
B from X < .5 or 1 ≤ X < 2 = 37.5%
C from 2 ≤ X < 3 = 25%
D from 3 ≤ X < 4 = 25%