autorenew

Shuffle & Sample

Operational

Verifiably shuffle or randomly sample from any list using Fisher-Yates seeded by drand

api API Docs

API Overview

The shuffle endpoint implements the Fisher-Yates algorithm seeded deterministically from the drand beacon. Submit any JSON array (strings, numbers, objects) and receive it fully shuffled or a random sample of k items without replacement. The beacon proof lets any party verify the shuffle was produced from public randomness — ideal for lotteries, competition brackets, and order-randomised surveys. Lists up to 10,000 items are supported per call.

autorenew

Fisher-Yates Shuffle

Mathematically unbiased full shuffle or partial sample — each permutation is equally likely.

verified

Public Randomness Source

The drand beacon is distributed across 20+ independent operators — no single point of bias.

data_object

Any JSON Array

Accepts strings, numbers, or nested objects — the API shuffles your data as-is.

shield

Audit Trail

Store the beacon proof alongside your draw results to settle any dispute without a trusted arbiter.

integration_instructions API Reference

terminal API Playground

Live Simulation
import requests

url = "https://random.picopayd.codefission.co.uk/api/random/shuffle"
payload = {"items": ["alice", "bob", "carol", "dave"], "pick": 2}
headers = {
    "Content-Type": "application/json",
    "X-PAYMENT": "<402-payment-token>"
}

response = requests.post(url, json=payload, headers=headers)
print(response.json())
Response Body 200 OK
{
  "result": ["carol", "alice"],
  "totalItems": 4,
  "picked": 2,
  "proof": {
    "round": 21543892,
    "signature": "95a9...",
    "chainHash": "52db9b...",
    "timestamp": "2026-03-20T10:00:00Z"
  }
}