Python 3, 64 55 51 bytes
-9 bytes thanks to @ovs
lambda s:choice((s*2)[1:]+s[1])
from random import*
##Explanation
Explanation
random.choice()
gets a random character of the String, while (s*2)[1:]+s[1]
creates BCDABCDB
for an input of ABCD
, which has 1/8 A
s, 2/8 C
s, 2/8 D
s and 3/8 B
s.