Duvida distribuir cartas em Java

Estou fazendo um jogo de cartas, onde eu devo criar um jogador A e um jogador B, e conseguir distribuir 5 cartas para cada um dos meus jogadores, para depois comparar os valores das cartas e decidir quem venceu, porém, estou com duvida de como faço pra distribuir as cartas para cada um dos jogadores, segue o código:

CLASSE BARALHO

package com.mycompany.baralhocop;

import java.util.Random;

public class Baralho {
    private Carta[] baralho;
    private String[] naipes = {"Ouro", "Paus", "Espada", "Copas"};
    private Random gerador = new Random();
    
    public Baralho(){
        baralho = new Carta[52];
        int k = 0;
        for(int j = 0; j< naipes.length;j++){
            for(int i = 0;i< 13;i++){
                baralho[k] = new Carta((i+1),naipes[j]);
                k++;
            }
        }
    }
    
    public void embaralharCartas(){
                
        Carta aux;
        int posicao;
        for(int i=0;i< baralho.length;i++){
           posicao = gerador.nextInt(52);
           aux = baralho[i];
           baralho[i] = baralho[posicao];
           baralho[posicao] = aux;
        }
    }
    
    public Carta[] distribuirCartas(int quantidade){
        Carta[] retorno = new Carta[quantidade];
        int aux;
        for(int i=0;i<quantidade;i++){
            aux = gerador.nextInt(52);
            while (baralho[aux] == null){
                aux = gerador.nextInt(52);
            }
            retorno[i] = baralho[aux];
            baralho[aux] = null;
        }
        return retorno;
    }
}

CLASSE CARTA

package com.mycompany.baralhocop;

public class Carta {
    private int valor;
    private String naipe;
    
    public Carta(){
        this.naipe = "";
        this.valor = 0;
    }
    
    public Carta(int valor, String naipe){
        this.valor = valor;
        this.naipe = naipe;
    }
    
    public int comparaValor(Carta carta){
        if(valor > carta.getValor()){
            return 1;
        } else {
            if (valor < carta.getValor()){
                return -1;
            }else {
                return 0;
            }
        }
    }
    
    public boolean comparaNaipe(Carta carta){
        if (naipe.equals(carta.getNaipe())){
            return true;
        }
        return false;
    }
    
    public int getValor(){
        return valor;
    }
    
    public void setValor(int valor){
        this.valor = valor;
    }
    
    public String getNaipe(){
        return naipe;
    }
    
    public void setNaipe(String naipe){
        this.naipe = naipe;
    }
    
}

CLASSE JOGADOR

package com.mycompany.baralhocop;

public class Jogador {
    private Carta[] mao;
    
    public Jogador (int quantidade){
        mao = new Carta[quantidade];
    }
    
    public Carta escolherEjogarMaiorCarta(){
        Carta maiorvalor = mao[0];
        int posicaoMaior = 0;
        int j = 0;
        
        while(mao[j] == null){
            j++;
        }
        
        maiorvalor = mao[j];
        
        for(int i = 1; i<mao.length; i++){
            if (mao[i] != null){
                if(maiorvalor.getValor() < mao[i].getValor()){
                  maiorvalor = mao[i];
                    posicaoMaior = i;
                } 
            }
        }  
        mao[posicaoMaior] = null;
        
        return maiorvalor;
    }
    
}

CLASSE DA MESA DE TESTE

package com.mycompany.baralhocop;

import java.util.Scanner;

import javax.sound.midi.Soundbank;

public class Mesa {
    public static void main(String[] args) {
    	Scanner input = new Scanner(System.in);
    	System.out.println("Mesa embaralhando . . .");
        System.out.println("Informe o numero de cartas a distribuir");
        int quantidade = input.nextInt();
        Jogador jogadorA = new Jogador(5);
        jogadorA.distribuirCartas();
        Baralho copag = new Baralho();
    }

}

É nessa parte de teste q estou com duvidas, de como posso pegar as cartas do baralho e colocar em meus jogadores

Pelo que entendi, vc deve usar o método distribuirCartas da classe Baralho para obter o array de cartas Carta[]. Depois que vc iria criar o jogador usando essas cartas que foram distribuídas.