A different alternative than trojan skipper (I do like what he does though).
We let them go in order by grades. Seniors bat first, Juniors, then Sophomores and then finally the Freshmen. We will have one hitter, two behind the cage tracking pitches and working on trigger and the next guy that will be coming in is on bucket. This way every player will pull bucket duty.
First round - 2 bunts, 2 hit and runs, 2 hit behind / move the runner over and then 5 cuts
Second round - 1 bunt up third baseline and 5 cuts
Third round - 1 squeeze and 3 cuts
During BP we also work on baserunning. The last Freshman who hits will start as a baserunner on first and then cycles through until he hits. Then second round he starts at second and third round he starts at third to work on squeeze.
When they are on first and the hitter has the two bunts we have the runner make shoulder turns toward 2B if they see the bunt down. If they pop it up then they have to shoulder turn back to first. On the first hit and run they take off on the pitch and work on locating the ball.
Then from 2B they work on balls at them to right side so they can advance. Balls to their right they shoulder turn back to the bag.
From 3B they look for flyballs to tag and score on. Once they score then they go back to the field to shag or get groundballs / flyballs from coaches.
On the groundballs we have a screen set up at first and second to work on taking it across the IF to first and we can also work on turning all the double plays.
We get a lot and I mean a lot of stuff done during our BP and the kids have to pay attention.