booleano aleatorio por porcentaje

Estoy tratando de obtener un booleano aleatorio pero con un porcentaje ponderado. Por ejemplo, quiero que el usuario pase un porcentaje (es decir, 60) y el generador seleccionará aleatoriamente el 60% del tiempo.

Lo que tengo es esto:

def reset(percent=50): prob = random.randrange(0,100) if prob > percent: return True else: return False 

¿Hay una mejor manera de hacer esto? Esto parece ineficiente y engorroso. No necesito que sea perfecto ya que solo se usa para simular datos, pero necesito que esto sea lo más rápido posible.

He buscado (Google / SO) y no he encontrado ninguna otra pregunta para esto.

Solo devuelve la prueba:

 def reset(percent=50): return random.randrange(100) < percent 

porque el resultado de un operador más bajo que < ya es booleano. Tampoco es necesario dar un valor de inicio.

Tenga en cuenta que debe usar más bajo que si desea que se devuelva True para un porcentaje determinado; si percent = 100 entonces querrá True todo el tiempo, por ejemplo, cuando todos los valores que produce randrange() están por debajo del valor de percent .

Qué tal si:

 def reset(percent=50): return random.randrange(0, 100) > percent 

@rjbez Solicitó una función que devuelve verdadero en X porcentaje de tiempo. Cuando X == 0% siempre debe devolver falso. Cuando X == 100% siempre debe devolver verdadero. La respuesta aceptada actual es ahora fija y tiene la relación adecuada

 def reset(percent=50): return random.randrange(100) < percent