Como embaralhar aleatoriamente um baralho de cartas entre os jogadores?

Estou tendo problemas para usar uma função em outra para distribuir cartões. Aqui está o que eu tenho até agora.

import random as rand 

def create(): 
     ranks = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']   
     suites = ['H', 'C', 'D', 'S'] 
     deck = [[r + s] for s in suites for r in ranks]    
     return deck   

def cards_dealt (num_cards, num_players, deck): 
     rand.shuffle(deck) 


print(cards_dealt(5, 3, deck)) 

Eu entendo que a função está incompleta. Eu preciso de num_cards para ser o número de cartas que cada jogador recebe, num_players para ser o número de jogadores e o deck para ser a lista de sequências de cartas da função create (). Por exemplo, a declaração impressa revelaria as 5 cartas que cada um dos três jogadores recebe do baralho da lista que foi embaralhado. Meu problema é que sempre que escrevo algo, diz que o deck não está definido.

questionAnswers(3)

yourAnswerToTheQuestion