Pool League schedule algorithms

Job ID: 30713658

Budget: $30 – $250 CAD

I am generating a league manager for a local pool league,

I am having issues with the schedule algorithm.

I have one scheduled that works, but I would like to be able to seed it to generate a unique schedule for each session.

Basics are
There are n number of teams. Usually around 28-40
Each team is tagged to a venue.
And a venue could have more then 1 table

a venue with 1 table could have 1-2 teams
a venue with 2 tables could have 1-4 teams.
A venue with 3 tables could have 1-6 teams this would likely be the max.

Each team is assigned to a venue before the session begins.

Now I need a generate a schedule that balances home and away per team, and does not allow for more home teams then the table count at the venue.

It is ok if a team plays back to back home or away games in a session. But should not happen more them once per session per team. Nor more then 2 games home or away back to back.

Also I would like to be able to recall the schedule again possibly via a seed number...

I think that is about sums up what I am looking for.
Related categories: PHP Algorithm MySQL Mathematics Laravel