Problemas com Javaweb (servlets)

Eu estou tentando fazer um sistema de votação onde existam 5 campos para digitar os nomes para os candidatos e 1 campo para digitar o número de votos, em que o número de votos deve ser randômico e não deve passar do número de total de votos, e os números gerados aleatórios somados não devem ser maiores do que o número total de votos.

index.html

<form action="resultadovotacao" method="POST">
	Candidato 1: <input type="text" name="candidato1"><br><br>
	Candidato 2: <input type="text" name="candidato2"><br><br>
	Candidato 3: <input type="text" name="candidato3"><br><br>
	Candidato 4: <input type="text" name="candidato4"><br><br>
	Candidato 5: <input type="text" name="candidato5"><br><br>
	Quantidade de votos: <input type="text" name="qtdVotos"><br><br>
	<button type="submit">Enviar</button>

ResultadoVotacao.java

String candidato1 = request.getParameter("candidato1");
String candidato2 = request.getParameter("candidato2");
String candidato3 = request.getParameter("candidato3");
String candidato4 = request.getParameter("candidato4");
String candidato5 = request.getParameter("candidato5");           

int qtdVotos = Integer.parseInt(request.getParameter("qtdVotos"));

Random rd = new Random();
int nVotoCandidato1 = rd.nextInt(qtdVotos);
int nVotoCandidato2 = rd.nextInt(qtdVotos);
int nVotoCandidato3 = rd.nextInt(qtdVotos);
int nVotoCandidato4 = rd.nextInt(qtdVotos);
int nVotoCandidato5 = rd.nextInt(qtdVotos);

out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet ResultadoVotacao</title>");            
out.println("</head>");
out.println("<body>");
out.println("<h1>Resultado da votação" + "</h1>");
out.println("<p>Candidato 1" + candidato1);
out.println("-Qtd votos: " + nVotoCandidato1);
out.println("<p>Candidato 2" + candidato2);
out.println("-Qtd votos: " + nVotoCandidato2);
out.println("<p>Candidato 3" + candidato3);
out.println("-Qtd votos: " + nVotoCandidato3);
out.println("<p>Candidato 4" + candidato4);
out.println("-Qtd votos: " + nVotoCandidato4);
out.println("<p>Candidato 5" + candidato5);
out.println("-Qtd votos: " + nVotoCandidato5);
out.println("</body>");
out.println("</html>");
}
}

E vc está tendo algum problema?

Sim, eu quero distribuir a quantidade de votos para os candidatos sem passar da quantidade total de votos.

Exemplo: candidato1 = fulanoA
candidato2 = fulanoB
candidato3 = fulanoC
candidato4 = fulandoD
quantidade de votos = 100

Resultado: fulanoA = 20
fulanoB = 10
fulanoC = 50
fulanoD = 20

No meu caso ele gera os números aleatórios, porem se somados passam do valor de número de votos

Exemplo: fulanoA = 45
fulanoB = 40
fulanoC = 32
fulanoD = 4

Acho que a cada ver que vc fizer rd.nextInt(qtdVotos); vc tem que deduzir o valor obtido do total de votos, com isso, os votos restantes irão diminuir evitando extrapolar o total de votos.

Como eu poderia fazer isso? pois o valor digitado de votos é digitado pelo usuário, podendo ser desde 1 até mais de 1.000.000.000.000…