결과를 정할 수 없는 추첨.
추첨 엔진 전체를 공개했습니다.

결과를 고르거나 바꾸는 기능은 코드 어디에도 없습니다.
누구나 열어 보고, 그대로 가져다 쓸 수 있습니다.

파일 받기 → 쓰시던 AI에 파일 올리기 → 검토 결과 확인
파일 안에 검토할 코드가 그대로 들어 있어, 인터넷 검색 기능이 없는 AI에서도 공개된 동일 버전의 코드를 기준으로 검토됩니다.

우나쿠지 공개 · MIT 라이선스 · 누구나 사용 가능 · 검토 버전 42700d0

검증 완료페이지를 열 때 계산한 값
치이카와 스페셜 쿠지 4번째판1회차 · 판매 중

판매 전에 잠근 값과 지금 배치가 정확히 일치합니다.

봉인 일시
2026년 10월 1일 오전 05:17
검증 티켓
130 / 130
알고리즘
SHA256-V1
검증 코드sha256-v1:95ee3c264dc9b67208ced136f71c2cd18b1e71ddf94831c716701298b6532179

누를 때마다 서버가 현재 배치를 다시 계산합니다.

결과는 판매가 시작되기 전에 정해지고, 그대로 잠깁니다.

  1. 판매 시작 전모든 티켓의 상품을 무작위로 배치하고 sha256으로 봉인합니다.

    이때 만들어진 검증 코드가 그 박스의 지문이 됩니다. 배치가 한 장이라도 달라지면 코드가 완전히 달라집니다.

  2. 판매 중봉인 시각과 검증 코드를 상세 페이지에 그대로 보여줍니다.

    운영자도 배치를 바꿀 수 없습니다. 바꾸면 검증 코드가 달라져 그 자리에서 드러납니다.

  3. 판매 종료 후배정 내역을 공개하고, 누구나 직접 대조할 수 있습니다.

    전수 공개 대상 박스는 판매가 끝나면 배정 내역 전체를 공개합니다. 그 밖의 박스도 봉인 코드 검증은 언제든 하실 수 있습니다.

봉인하고 대조하는 이 방식도 우나쿠지가 공개한 코드 그대로입니다. 누구나 같은 계산을 직접 해볼 수 있습니다.

왜 공정한가요?

누가 뽑아도 같은 규칙입니다.

사용자 이름, 등급, 구매 이력은 당첨 결과를 정하는 값으로 사용되지 않습니다.

코드에서 확인 →

운영자 화면에도 결과를 고르는 버튼이 없습니다.

특정 사용자에게 원하는 상품을 주거나 이미 정해진 결과를 바꾸는 기능 자체를 만들지 않았습니다.

코드에서 확인 →

감출 게 없어서 코드를 열었습니다.

우나쿠지가 직접 전체 소스를 공개했고, 누구나 열어 보고 그대로 가져다 쓸 수 있습니다.

공개 저장소 →

코드를 몰라도 이해할 수 있습니다.

src/rng.ts42700d0
import { randomInt } from 'node:crypto';

export function secureShuffle<T>(items: readonly T[]): T[] {
  const result = items.slice();
  for (let i = result.length - 1; i > 0; i--) {
    let j: number;
    try {
      j = randomInt(0, i + 1);
    } catch (cause) {
      throw kujiError('RNG_FAILURE',
        'Secure random number generation failed while shuffling ticket assignment.',
        { cause: cause instanceof Error ? cause.message : String(cause) });
    }
    const a = result[i] as T;
    const b = result[j] as T;
    result[i] = b;
    result[j] = a;
  }
  return result;
}
설명을 위해 다시 쓴 예시가 아니라, 우나쿠지가 공개한 저장소에 그대로 올라가 있는 코드입니다 · 검토 버전 42700d0원문 보기
AI가 조심스럽게 답하는 이유
이 엔진 코드만으로 실제 운영 서버의 권한 설정이나 배포 상태까지 공정하다고 보증하는 판단은 아닙니다.

코드 검토는 규칙이 공정한지를 확인합니다. 이 사이트가 그 규칙대로 돌고 있는지는 봉인 코드가 확인합니다. 둘을 같이 두는 이유입니다.

판매 전에 잠근 검증 코드와 지금 배치를 다시 계산한 값이 일치하면, 티켓에 배정된 상품이 판매 시작 이후 바뀌지 않았다는 뜻입니다. 데이터베이스를 직접 열어 한 장만 바꿔도 검증 코드가 완전히 달라지기 때문입니다.

AI 검토 질문에는 “데이터베이스에 저장된 배정은 공개된 코드로 만들어졌다”는 전제를 적어 두었습니다. 코드만 읽어서는 확인할 수 없는 부분이라 전제로 두고 답을 받습니다. 대신 그 배정이 판매 시작 이후 바뀌지 않았다는 사실은 위 봉인 증서로 직접 확인하실 수 있습니다.

봉인 검증이 확인하는 범위는 판매 전에 정해진 티켓별 상품 배정입니다.

누구나 이 소스로 쿠지 프로그램과 사이트를 만들 수 있습니다.

추첨 방식을 설명하는 문서가 아니라, 직접 실행하고 검토하고 개발에 활용할 수 있는 엔진 소스 전체입니다. 다른 쿠지 서비스가 그대로 가져다 써도 괜찮습니다. 결과를 정할 수 없는 구조라는 확신이 없으면 애초에 공개할 수 없는 코드니까요.

공개한 버전은 저장소에 그대로 남습니다. 나중에 무엇이 어떻게 바뀌었는지도 누구나 확인할 수 있습니다.

소스와 이용 안내

검토 버전 42700d082786

AI가 코드를 읽지 못하면 검토용 소스를 첨부해 주세요. 코드·질문·다운로드는 같은 버전을 기준으로 합니다.

화면·결제·회원·배송 기능은 별도로 구현해야 합니다.