After writing too many times ad-hoc code for a random wait time, I decided to write a function for it, with nice output.
I'm using this function for example to generate random countdowns between pages visits for web scraping.
Code
import random
import time
wait_from = 7.8
wait_to = 9.7
def wait(wait_from, wait_to):
    wait_seconds = random.uniform(wait_from, wait_to)
    # sleep for the remaining decimal part of the seconds
    time.sleep(wait_seconds - int(wait_seconds)) 
    count_left = wait_seconds
    for w in range(int(wait_seconds), -1, -1):
        # rolling countdown
        print(f"\r{int(w)}", end='', flush=True)
        time.sleep(1)
        count_left -= 1
    # Clear the printed countdown
    print("\r", " " * len(str(int(wait_seconds))), end="\r", flush=True)
wait(wait_from, wait_to)
Demo
Explanation
As the function enable to wait for a random float number of seconds (ie with decimals), it starts by waiting for the decimal amount of time (eg. .39s if random number is 8.39s): time.sleep(wait_seconds - int(wait_seconds)).     
Then it starts a countdown from the integer part of the random number (eg. 8s if random number is 8.39s) with int(wait_seconds).    
For printing in place, using print(f"\r{int(w)}", end='').    
And print("\r", " " * len(str(int(wait_seconds))), end="\r", flush=True) clears the countdown line when done.  
Usage
It's also now added to my my_utils.py library my-utils   
So I can easily import it and use it in other scripts as follows:
from my_utils import wait
wait_from = 7.8
wait_to = 9.7
wait(wait_from, wait_to)