What is PickleMixer?

About the PickleMixer

PickleMixer is a free, flexible, feature-rich application for organizing pickleball matches and assigning players into doubles games — randomly or otherwise. Enter your players, set your courts, and get an optimized schedule in seconds.

Click here if you're NEW and want to get started now.

Curious about the difference between PickleMixer and traditional methods? See our feature comparison matrix.

Key Features

Core Features (No Account Required)

Dashboard Features (Account Required)

Getting Started is Quick

To get started, open the mixer and type each player's name into the input field, pressing Enter or clicking Add after each one.

Set the number of available courts, then press the Mix button to generate your first game.

When done playing, press Mix Next to generate the next game.

Hint: Only use REmix if the shown game was not actually played — it regenerates the current game with any changes you've made.

Go to PickleMixer →

Feature Details

No Account Required

Free and anonymous usage of all core mixer features. No need to do anything except start entering your players' names. Your session is saved locally in your browser.

Advanced Mixing Algorithm

Every effort is used to keep opponents and partners fresh for everyone every game while ensuring a fair sit-out process when there are spare players even at extreme player counts and player-to-court ratios.

Session-Based Mixer with Timeline Controls

Your mixing session is managed server-side, allowing seamless access across devices when logged in. Built-in timeline navigation lets you traverse game history and analyze past mixes directly within the interface.

Genetic Optimization

This is not a simple random brute-force process. Mixes are either served from a list of optimally pre-calculated solutions or derived from a complex genetic optimization for speed and efficiency.

Pre-Calculated Patterns

Pre-solved mixes are served automatically if available. For maximum optimality and speed, many popular combinations (9 to 24 players) have optimal patterns precalculated. Pre-solved round-robin sequences for fixed partner formats are also available.

Up to 150 Players

Enter up to 150 players and use up to 99 courts in each session.

Bad Court Distribution

Sometimes there's one bad court that players hate. Use the "bad court" setting to fairly distribute this court to all players.

Freeze Court for Next Remix

Keep a court's players unchanged during the next remix. Useful when a game is still in progress or players want to continue their current matchup.

How to use: In the game view, tap the snowflake icon (❄) on any court to freeze it. Frozen courts display a blue highlight. When you remix, those players stay on their court while others are shuffled. Tap the snowflake again to unfreeze.

Pin Players to Courts

Designate specific players to always play on a certain court when they are mixed. Perfect for accessibility needs, accommodating players with limited mobility, or if the organizer needs to be near the computer or device.

How to use: In the court assignments view, tap the three-dot menu next to a player's name and choose "📌 Pin to Court...". Select the court number. The player will receive a pin icon next to their name and will always be assigned to that court whenever they play. To remove it, use the menu again and select "Remove Pin".

Rename Courts

Customize court names to match your venue's layout. Instead of generic "Court 1, Court 2" labels, use meaningful names like "North Court" or "Gym A" for easier player navigation.

How to use: Tap on the three-dot menu button beside the court name in the game view to edit it. Your custom names persist throughout the session and appear on printouts.

Mixed Doubles Mode

Strive for more mixed doubles courts, men's courts, and women's courts. Set player genders in the roster and use one of the gender-based presets.

Watch: How to run a mixed doubles league

Fixed Partners System

Link two players to be fixed partners. Handles odd numbers of players and any mix of fixed teams with individual players. Use the link feature in the player roster to assign fixed partners.

For rating-based mixing, see the Rating System section below to create balanced matchups based on player skill levels.

VIP Player Protection

Sometimes you have a VIP or two that you do not wish to sit out. Mark players as VIP using the star icon, and they will be protected from sitting out.

Quick Presets

No need to use complex weight settings — just choose a pre-made preset from the Quick Presets menu in Games Settings.

Player Swapping

If someone doesn't play where directed, you can let the system know by performing a swap. This way the mixer can continue to deliver fresh opponents and partners to everyone.

How to use: Either drag and drop by clicking and holding the three-dot menu icon beside the player, OR tap the three-dot menu for the player and choose 'Swap with...', then click another player's three-dot menu to complete the swap.

Shoo-in Players

Add late-arriving players to the current game when they show up after courts have already been called. Perfect for when you forgot to enter someone's name or a player arrives just too late to play in the current game. For example, three players sitting out, the game is called and players are sent to their court. Then, two players arrive just as the game is starting. We can now shoo-in the two late players into the current game and randomly select four out of the now five available players to use an available court.

How to use: Add the player to your roster, then use the shoo-in feature to place them directly onto an available court or into the sit-out area for the current game without needing to remix.

Start Next Round While Some Courts Are Still Playing

Start a new round with players who have finished their games while others are still playing. Ideal when waiting for all courts to complete would take too long — you can enter scores for incomplete games later after the next round begins.

How to use: Enter scores and submit normally for the games that are finished. Click "Split Session" to remix the next game using only the players that have completed their game and entered their score. The incomplete games can be entered any time they finish by clicking the enter scores button on the next round.

Public Ratings Page

Share your group's player ratings with a public leaderboard page. Perfect for clubs and leagues who want members to track their standings without needing to log in.

How to use: Enable public ratings in your group settings. Share the generated public URL with your players. The page displays current ratings, recent games, and player statistics — updated automatically as you record scores.

Team Entity Rating Mode

Track ratings for fixed partnerships as a single team entity rather than individual players. Ideal for leagues or groups where partners always play together and want their combined performance rated as a unit.

How to use: Enable team rating mode in your group's rating settings. When players are linked as fixed partners, their games contribute to a shared team rating instead of separate individual ratings. Team ratings appear on the leaderboard alongside individual players.

Squad-vs-Squad Mixing

Organize players into squads — named subgroups that the mixer treats as rival teams. When squads are active, the algorithm strongly avoids placing squad-mates on opposing sides of the net and encourages same-squad partnerships. This creates a natural squad-versus-squad dynamic where your group's internal teams compete against each other every game.

How to use: Create subgroups in the Dashboard and mark them as squads. Assign players to their squad, then start a mixer session as usual. The mixing engine automatically detects squad assignments and applies the squad-vs-squad scoring — no special preset or weight adjustment needed.

Big Screen Mode

Use the "Show All Courts" feature (📺) to display all players and their current courts on one screen without needing to scroll — perfect for a TV or projector.

Timer, Buzzer & Auto-Mix

Set a countdown timer for game duration directly in Big Screen Mode. When time is up, a loud buzzer sounds to signal the end of the round. Enable auto-mixing and the system will automatically generate the next round of matches when the timer expires — completely hands-free court rotation. The timer auto-stops after 180 minutes of continuous use to prevent unattended looping.

Advanced Printing

Customize your printouts with adjustable spacing, fonts, and column layouts to fit everything on one page. Use color markers for easy visual identification of teams or player names.

Dashboard Features

Save Players to Groups

Save player names so you don't need to type them in each time. Have multiple groups of players saved for different playing locations or events. Sign up to access the dashboard.

⚙ Rating System

Give your players ratings via seed ratings or let ratings be adjusted by entering game scores. Weight can be given so the mixer prefers to make partners and/or opponents roughly equally rated.

This uses an ELO system with a default rating of 1500. Ratings are calculated per group and reflect the relative strengths of players within each group.

Enter Scores

Record game scores to automatically calculate and update player ratings using the ELO system. Scores can be entered for any completed game, and ratings will adjust based on the outcome and margin of victory.

Rating System

The following settings are used for groups. Most can be customized per group:

Default Rating:
The starting rating for all new players. A standard ELO default is 1500. All ratings are relative within each group, so the actual number matters less than the differences between players. You could use traditional pickleball ratings (3.5,4.0 etc) but make sure to set the scale appropriately.

Base K-Factor:
Controls how much ratings change after each game. Higher values (e.g., 80) mean ratings adjust quickly, which is good for new or rapidly improving groups. Lower values (e.g., 32) make ratings more stable but change slower. This value is automatically adjusted internally: it's doubled for doubles games (to account for ratings changes shared between partners) and scaled by the win bonus setting (to account for increased variance).

Scale:
In the Elo formula, "scale" is the constant that determines how many rating points correspond to a specific win probability difference between players—it controls the steepness of the win-probability curve.


For example, with the standard 400-point scale, if a 1500-rated player faces a 1300-rated player (200 points difference), the formula predicts the higher-rated player will win approximately 75% of the time; if you instead used a 200-point scale, that same 200-point gap would predict ~95% win probability, making the system more "stretched" where small rating differences indicate larger skill gaps.


If you already have set some ratings in place before you started you can calibrate this setting until the expected scores look right. Otherwise you could just leave it at its default.

Player Placement Games:
New players go through a placement period where their rating changes are amplified (2× normal). This helps new players reach their true skill level faster. After completing this many games, rating changes return to normal.


Note: If you are importing players from the legacy system where they already had established ratings, or if you are confident in the seed ratings you entered, you can set this to 0.

Pool Placement Games:
When a group is new, ALL player ratings are more volatile (2× changes). This helps the entire group establish accurate relative ratings quickly. After this many total games are played in the group, volatility returns to normal.


Note: If you are importing players from the legacy system where they already had established ratings, or if you are confident in the seed ratings you entered, you can set this to 0.

Highest Player Responsibility:
In doubles, this determines how much the higher-rated player affects the team rating calculation. At 50%, both partners contribute equally. At lower values (e.g., 35%), the team rating weights more toward the lower-rated player, partially protecting stronger players from rating loss when paired with less skilled partners. Example: If the highest rated players run around taking all the balls in your league, you may want to set this to around %50-%70. If in your league, the lowest rated players end up receiving most of the balls, you should set this around %30-%40

Win Bonus:
Controls how much winning matters vs the score margin. At 0, only the margin matters (a 21-19 win changes ratings less than 21-5). At 1.0, only winning matters and margin is ignored.

Protect Winner Rating (Experimental):
When enabled, winners can never lose rating points, even in unusual scenarios (e.g., a heavy favorite winning by less than expected). This may cause rating inflation/deflation near the boundaries.

Rating Decay:
When enabled, players who haven't played in 7+ days will have their rating gradually reduced each week. This keeps the leaderboard active and prevents inactive players from holding top positions indefinitely. Ratings have a floor of 1000 and will not decay below that. The decay rate (default 2%) determines how much rating is lost per week of inactivity.

Group Timezone:
Sets the timezone used for your group's date displays and session boundaries. This affects when "today" starts/ends for session grouping and when the weekly decay calculation runs. Choose the timezone where most of your group plays.

Public Ratings Page:
When enabled, creates a shareable link where anyone can view your group's player ratings and standings. Useful for letting players check their ratings without needing an account. The link is unique to your group and can be shared via text, email, or posted at your playing venue.

Team Rating Mode:
Choose how team strength is calculated. "Individual ratings" uses a weighted average of both players' individual ratings. "Team entity ratings" tracks each unique player pair as its own rated entity based on games they've played together. Both are always calculated in the background—this setting controls which is used for mixing and displayed on leaderboards. Individual ratings reward personal skill; team ratings reward partnership chemistry.

Typical Competitive Game Duration:
The expected duration of a competitive, close game. Used for time-based adjustments in non-rally scoring games. If a game has a short time limit, bonus points are added to simulate how the game might have finished.

Rally Scoring:
Rally scoring means a point is scored on every rally, regardless of who served. Traditional scoring only awards points to the serving team. Rally scoring games tend to have more predictable outcomes, which affects rating calculations.

Win By Two:
When enabled, a team must win by at least 2 points (e.g., 11-9 or 12-10). This affects expected score calculations for rating adjustments.

Target Score:
The score needed to win a game (e.g., 11, 15, or 21 points). This affects expected score calculations and time-based adjustments.

Cloud Session Sync

Logged-in users can sync their mixer sessions to the cloud, allowing access from any device. Sessions are associated with your account and can be managed from the dashboard.

Scheduler — Event & League Management

The Scheduler is a PickleFriend.net organizer tool — back by popular demand from the classic site. Create and manage pickleball events and recurring leagues for your group. Set up single events or recurring schedules that repeat on selected days over a date range.

Players do not need an account to participate. Invited players receive an email with a personal link to view event details, RSVP, and interact with the event — no signup or login required.

For each event, configure the date and time, location (with Google Maps autocomplete), number of courts, maximum player capacity, session duration, and optional descriptions. Events support three waitlist types: Standard (first come, first served), Lottery (random selection after a grace period), and Rating-based (highest rated players get priority).

Auto-Invite lets you automatically send email invitations to your entire group or specific subgroups a configurable number of days before each event. You can also invite players manually after creating the event. Players receive email notifications and can RSVP directly from their inbox.

Additional features include fixed partner configurations per event (players can use a mutual selector to pick each other — no awkward one-at-a-time asking), booking jobs where players can volunteer for setup tasks, notices posted by the organizer, chat for event communication, and After-Game Social (AGS) announcements.

How to use: Go to the Scheduler page in your dashboard sidebar. Click "Create Event / League" to set up a new event. Use "Upload CSV" to bulk-create events from a spreadsheet. Manage each event's RSVPs and player statuses from the event detail page.

Scheduler Field Reference

Some scheduler fields have nuanced behavior worth understanding:

Courts:
You can enter plain text into the courts field — for example, "We obtained courts 1, 2 and 5" — and the system will parse the court numbers to determine the total count (3 courts in this example). Your players will also see exactly which courts you have, making it easy to communicate venue details directly through the event without a separate message.

Waitlist Types:
The scheduler supports 5 waitlist types, each controlling how players are admitted when event spots are limited:

  • Standard (First Come, First Served): Players are admitted immediately on a first-come basis. No grace period. If the event is full, latecomers go to the waitlist.
  • Lottery (Random Selection): All RSVPs during the grace period go to the waitlist. When the grace period ends, waitlisted players are shuffled randomly and winners are placed "in." After the grace period, remaining spots fill first-come-first-served.
  • Rating (Highest First): Same as lottery, but instead of random selection, waitlisted players are sorted by rating — the highest-rated players get in first.
  • Manual (Organizer Picks): All RSVPs go to the waitlist. The organizer manually promotes players from the event manage page. When done picking, the organizer can click "Open Standard Flow" to allow remaining spots to fill first-come-first-served.
  • Take Turns: Players who didn't get in last week get priority over players who did.

Grace Period: For Lottery and Rating types, the grace period mitigates the "click race" in busy groups. As long as a player RSVPs within the grace period after invitations are sent, they are treated as an early bird — equivalent to having clicked at the very first moment. The grace period starts automatically when the first invitations are sent (manual or auto-invite).

Standard and Manual types do not use a grace period.

Disallow Direct Declarations:
Controls whether players can unilaterally declare a partner. When this setting is left unchecked (the default), a player can declare that they already have a partner — the partnership is formed instantly without confirmation from the other player, and both players are set to "In" status (or placed on the waitlist if there are no available spots).


When checked, direct declarations are disabled and the declared partner must confirm the partnership request before it takes effect. Enable this if you want to prevent players from committing others without their knowledge.

Auto Invite:
Automatically sends email invitations to your group's players a configurable number of days before each event. You can invite your entire group or target specific subgroups — and different subgroups can be invited at different intervals if you prefer staggered invitations (e.g., core players get invited 7 days out, everyone else gets invited 3 days out).


Auto Invite runs automatically via the system's scheduled tasks — once configured, you don't need to remember to send invitations for each event.

Shame Notices:
When a player drops out of an event at the last minute, the scheduler can notify the group with a shame notice so everyone knows what happened and can plan accordingly. This encourages accountability and helps organizers manage late roster changes without scrambling to communicate individually.

Attending Events Mode — Personal Event Schedule

Attending Events Mode is a unified schedule view for logged-in players, showing all upcoming events across every group and organizer. If you've been invited to events by multiple organizers, they all appear in one place. Players who don't have an account can still RSVP and interact with events directly from their email invitation link.

Switch between list view (events grouped by date with proximity indicators) and calendar view (month grid with event dots). Pre-invite events — events your subgroup will be auto-invited to but haven't been invited to yet — appear as ghosted entries so you can plan ahead.

Click any event to open the player schedule page, where you can RSVP (I'm In, Undecided, I'm Out), join the waitlist if the event is full, volunteer for booking jobs, select a fixed partner, view organizer notices, add the event to your calendar, and chat with other players.

How to access: You will only see the Attend button in the dashboard header if you have been invited to an actual event, either by yourself or by a third party.

"All Players" Mode

The Players Dashboard now supports an All Players view where you can see, filter, and edit players across multiple groups at once. This is designed for power users who manage several groups and want a unified roster management experience.

Sort by group (flat row view) to see all players listed under their group, or sort by name (tree view) to see players alphabetically with their group memberships nested underneath. Use the search filter to quickly find any player across your entire roster.

How to access: Enter this mode by changing the filter drop down to "All Players". If you only manage one group, the default view still just shows that group's players.

Player Indicators

Badges shown beside player names when applicable:

Sit-out Reason

  • S Super Sit: Sitting out in turn (highest consecutive games played).
  • V Voluntary: Manually sat out by organizer.
  • A Algorithm: Sitting out due to algorithm optimization.
  • 2x Sit-out Streak: Sat out multiple games in a row.

History Warnings

  • DG Duplicate Game: Exact same game configuration played before.
  • T Team: Played against this exact team before.
  • P Partner: Played with this partner before.
  • O Opponent: Faced this opponent before.

Status Icons

  • VIP: Protected from sitting out.
  • 🔗 Linked: Fixed partner assignment.
  • 💔 Broken Link: Linked partner is playing without them.
  • Ready: Ready to play next mix.
  • Sitting: Will sit out next mix.
  • 🔄 Swapped: Position manually changed.

⚙ Custom Weights

You can use the custom weight settings to fine-tune the algorithm. It is recommended to use the presets in most circumstances, but advanced users can adjust:

Sit-out Weight

The default value of 98 ensures fair sit-outs. With this setting, players always sit out when it's their turn. Lower values allow the algorithm more flexibility to optimize other goals at the cost of strict sit-out fairness.

Used in conjunction with Max Algorithmic Sitters — if set to a non-zero value, this allows better mixes at the possible expense of one or more players sitting out "out-of-turn".

New Partner Weight

Controls the importance of having a fresh, unseen partner every game. Higher values prioritize partner variety.

New Opponent Weight

Controls the importance of facing fresh, unseen opponents every game. Higher values prioritize opponent variety.

Court Number Weight

Controls the importance of distributing courts evenly across players. Use sparingly as it can affect other optimization goals.

Mixed Doubles Weight

Controls the importance of creating mixed doubles courts. Requires player genders to be set. Values 96+ create only same-gender courts; 95 or less enables mixed doubles.

Rating Weight

Controls the importance of balancing teams by player ratings. Higher values prioritize creating matchups where partners and opponents are similarly rated. Requires players to have ratings assigned (via seed ratings or recorded scores).

Highest Rated Partner Responsibility

Adjusts how much the higher-rated player on a team is expected to contribute. Setting this to a lower percentage (e.g., 35%) assumes the less skilled player will be hitting most of the balls, with the higher-rated partner less involved (35% involvement). This partially protects the higher-rated player's rating from being affected as much.

This also affects opponent balancing calculations — a 35% setting uses a 65% weighted average toward the lower-rated player when evaluating team strength against opponents.

Game Variety Controls

Duplicate Game Dissuasion: Avoids repeating identical game matchups (same four players on the same court and same teams). Enable this to prevent déjà vu games.

Participant Diversity: Encourages variety in early games. Slightly prefers not to repeat a previous partner as an opponent (and vice versa) early in the session. Useful when you want everyone to play with different people as quickly as possible.

Mix Quality

Controls the maximum calculation time. Higher values may produce better mixes but take longer to compute.

Need Help?

Feature requests, bug reports, community feedback, and all other support: /r/PickleFriendMixer