How to refill a hand slot with a new, unused card from a JSON-based deck

I have a card deck of 45 cards and a player hand of 7 cards. At the start of the game, I load the full deck from a JSON file into global variables, including all card attributes (see structure in the screenshot).

The hand should be filled with 7 random cards taken from the deck. When the player uses the card in hand slot 1, I want that slot to be immediately refilled with a new card that has not been drawn or played before.

I am completely new to this and need a simple and detailed explanation. Thank you very much.

Maybe this example can help: