Programa usando listas en Python

estoy arrancando en la programación y me piden hacer este programa:

Rellenar una lista con números enteros entre 0 y 100 obtenidos al azar e imprimir el valor
mínimo y el lugar que ocupa. Tener en cuenta que el mínimo puede estar repetido, en cuyo
caso deberán mostrarse todas las posiciones que ocupe. La carga de datos termina cuando se
obtenga un 0 como número al azar, el que no deberá cargarse en la lista.

Les dejo lo que intente hacer:

lista = ()

i = 0
menor = 9999999
cont = 0

while i <= 100:
    x = int(input("Ingrese un numero al azar: "))
    
    lista.append((x))
    
    if x < menor:
        menor = x
    
    if x == menor:
        cont = cont + 1
    
    i += 1

def imprimirlista(lista):
    largo = len(lista)
    for menor in range(largo):
        print(lista(menor), end=" ")
    print()
    
print("El minimo es: ", menor, "y se encuentra en el lugar: ", cont)

imprimirlista(lista)