ForHosting KIT · Developer Utilities

Raffle ticket number generator

Create a ready-to-use list of raffle ticket numbers from one starting value and a requested quantity.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

Every result is padded to a consistent minimum width, so values such as 98 become 000098 when the width is six. Leave the seed empty for normal sequential order, or provide a seed to shuffle the same range reproducibly. The generator is deterministic, keeps every number exactly once, and makes it easy to prepare ticket artwork, attendee sheets, draw records, or print-merge data without correcting numbering by hand.

Build the exact ticket range you need

Begin with the first numeric identifier that should appear on your tickets, then enter how many identifiers the batch needs. The generator includes the starting value and continues by one until it has produced the requested count. For example, a start of 98 and a count of five represent the numeric range 98 through 102. Width controls presentation rather than arithmetic: a width of six formats those values as 000098, 000099, 000100, 000101, and 000102. If a value already has more digits than the requested width, it is preserved in full and is never clipped. This makes the tool suitable for continuing an existing print run, reserving a block for a particular seller, or creating a small replacement batch without restarting at one. Check the start and count against your previous allocation before exporting the result, because the generator intentionally does not consult or remember earlier batches. It produces precisely the range described by the current request.

Choose sequential order or a reproducible shuffle

Leave the seed blank when the output should follow ordinary ascending order. Sequential lists are useful for ticket sheets, mail merges, perforated books, and reconciliation records because adjacent entries are easy to inspect. When distribution order should not reveal neighboring ticket numbers, provide any non-empty seed. The generator first creates the complete consecutive range and then shuffles it with a deterministic algorithm. Every ticket number still appears exactly once; only its position changes. The same start, count, width, and seed always produce the same ordered list, which lets collaborators regenerate a lost file or verify that two exports match. Changing even the seed gives a different ordering while retaining the same members. Treat the seed as part of the job record: store it alongside the artwork or allocation sheet if the order must be reproduced later. This is a practical shuffle for arranging ticket identifiers, not a cryptographic draw system, and it should not be used to select a winner or supply security-sensitive randomness.

Use zero padding safely in print and data workflows

Leading zeroes keep identifiers aligned and prevent mixed visual lengths across a ticket batch. Choose a width large enough for the highest number you expect, including future batches if the same template will be reused. A four-digit width displays one as 0001 and nine hundred as 0900, while the underlying sequence remains numeric. The output is returned as strings because spreadsheet software, design tools, and database imports often remove leading zeroes from numeric cells. Preserve the values as text when moving them into a CSV column, variable-data printing application, label template, or attendee system. The response also reports the start, count, width, and whether shuffling was used, giving an automation workflow enough context to label or audit the generated batch. Requests are bounded to ten thousand identifiers, the start must be a non-negative safe integer, and the final value must remain within the safe integer range. Those checks prevent silent rounding, runaway output, and duplicate-looking identifiers caused by imprecise arithmetic.

Prepare variable-data ticket artwork

Generate a consistently padded column of identifiers for a print merge, starting exactly where the previous ticket batch ended.

Allocate shuffled ticket packs

Use a recorded seed to distribute one complete number range in a reproducible non-sequential order without omissions or duplicates.

Reconcile event sales records

Create the expected identifier list for a seller or table, then compare it with issued, returned, and winning tickets.

What does it cost?

The generator is free to use in your browser. API requests cost $0.002 each.

Is the starting number included?

Yes. The first result is the starting number, and the generator continues upward until it reaches the requested count.

Does padding change the numeric range?

No. Width only adds leading zeroes for display. It never truncates a value or changes which numbers belong to the range.

Will the same seed reproduce the same order?

Yes. Identical start, count, width, and seed inputs return the same shuffled list every time.

Can a seeded shuffle omit or repeat numbers?

No. Shuffling only changes position after the consecutive range is built, so each generated ticket number remains present exactly once.

Can this choose a raffle winner?

No. The seeded shuffle is intended for reproducible arrangement, not cryptographic randomness or winner selection. Use an independently audited draw process for a raffle result.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/game/raffle-ticket-numbers

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/game/raffle-ticket-numbers \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"start":98,"count":5}'
{
  "start": 98,
  "count": 5
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "game.raffle_ticket_numbers",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_items10000
max_width30
max_seed_chars200
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →