We have a group of 15-16 Badminton players who play double every weekend. The players are individual and choose the partner player randomly while playing. We are thinking to build a ranking system to the players. Is there a formula we can adapt to decide the play order and rank the players?
Providing that teams are not fixed, Elo (and Glicko too) does not fit your needs, because it's designed for 1-on-1 matches only.
You need something that manages both team performance and players' rating, as TrueSkill or rankade, our free-to-use rating system. Here's a comparison between aforementioned ranking systems.
If you're interested in use (more than in development), you should give a try to rankade. It can manage small to large playing groups, and it features rankings, stats, and more. We host many badminton groups/clubs, as well as other sports/games ones (here's our dojo).
There is a method a group of friends and I used to follow when playing table tennis at school. Due to the availability of only 2 tables and too many players, we had to play doubles all the time. So we devised a ranking method to keep track of the best players and learn if our individual game improved or lagged behind the rest of the group. Whenever we got together to play, we paired up with someone. We played a game and the winners each got 1 point, while the losers got 0. For the next game, every player had to necessarily change his partner and pair up with someone new. No one could again pair up with someone they have already played with until they have paired up with everyone else. Each individual player kept a record of number of points and total number of games played that day, which was then added to a common book we maintained.
At the end of every week, we would draw up the latest rankings, based on percentage of wins (number of points divided by total number of games played). This way, we could see weekly rankings and cumulative rankings at the end of every week. Players who improved were higher in the weekly rankings and slowly climbed up the cumulative rankings too.
This system has one major requirement though, that the pairings should be truly random, or a system of rotation is enforced. If this is not followed, the rankings could be skewed if an average player frequently pairs up with their best buddy, who is a very strong player, and achieves a much higher rank than their ability would merit. In an enforced rotation system, the ranks would stabilize within a few weeks, whereas in a truly random system, the stabilization would take a little longer to reflect a true picture.
This is a perfect scenario for the Elo rating system.
It takes a bit of set up on a spreadsheet (I'd imagine there are websites or apps that will do it for you). It gives each player the same arbitrary score and then adds/deducts points based on a win/loss but at relative amounts to the difference in the scores.
If the same player repeatedly wins against the same opponent then the resulting increase in scores will diminish. It gives a fair allotment of points.
This system is used in chess tournaments and in ranking tennis players across the world and various other sports too.