D&D Skill Challenges
Python, 134 bytes
Thanks Pietu1998 for the bytes saved
from random import*
def g(a,b,c):
 s,z=[],[c,b]
 while z[0]*z[1]:d=randint(1,20);z[a&lt;d]-=[1,z[a&lt;d]][d in[1,20]];s+=[d]
 return[z[0]]+s

Pretty simple, can probably be golfed a bit more, but we needed something to kick this off. Try it online.