'Random element from the stabilizer of ``alpha``.
The schreier vector for ``alpha`` is an optional argument used
for speeding up repeated calls. The algorithm is described in [1], p.81
See Also
random_pr, orbit_rep'

def random_stab(self, alpha, schreier_vector=None, _random_prec=None):

    if (schreier_vector is None):
        schreier_vector = self.schreier_vector(alpha)
    if (_random_prec is None):
        rand = self.random_pr()
    else:
        rand = _random_prec['rand']
    beta = rand(alpha)
    h = self.orbit_rep(alpha, beta, schreier_vector)
    return rmul((~ h), rand)
