
The 12th pick being the lowest that one of those teams can fall.
There's an 8.18% chance that the bottom 3 teams will all drop to the 10th, 11th and 12th picks.
Edit 2: /u/hamahakkimies made a good point: https://www.hamahakkimies.com/project/nba-3-2-1-lottery. This all assumes that they'll implement the lottery by doing the draw once and filling in the final picks in the top 12 with the bottom-3 teams if they haven't already been picked. There is at least one alternative method that would produce different results.
Edit: I was asked to show my working. These probabilities are found by calculating all of the possible outcomes and adding up the individual probabilities for the outcomes that meet the criteria. For anyone who's interested, here is the Python code.
def get_prob(A_teams, B_teams, C_teams, D_teams, round):
A_balls, B_balls, C_balls, D_balls = 2, 3, 2, 1
threshhold = 9
if A_teams == 0:
return 0
elif round == threshhold and A_teams == 3:
return 1
elif round == threshhold + 1 and A_teams == 2:
return 1
elif round == threshhold + 2 and A_teams == 1:
return 1
total_balls = (A_teams * A_balls) + (B_teams * B_balls) + (C_teams * C_balls) + (D_teams * D_balls)
prob = 0
if A_teams > 0: prob += (A_teams * A_balls / total_balls) * get_prob(A_teams - 1, B_teams, C_teams, D_teams, round + 1)
if B_teams > 0: prob += (B_teams * B_balls / total_balls) * get_prob(A_teams, B_teams - 1, C_teams, D_teams, round + 1)
if C_teams > 0: prob += (C_teams * C_balls / total_balls) * get_prob(A_teams, B_teams, C_teams - 1, D_teams, round + 1)
if D_teams > 0: prob += (D_teams * D_balls / total_balls) * get_prob(A_teams, B_teams, C_teams, D_teams - 1, round + 1)
return prob
print(get_prob(3, 7, 4, 2, 0))