package main

import (
	"fmt"
	"hash/crc32"
	"hash/crc64"
	"math/rand"
)

var (
	names = []string{
		"John",
		"Paul",
		"Peter",
		"Sam",
		"Susan",
		"Sarah",
		"Melony",
	}
	date = "2024-08-14"
)

func removeIndex(s []string, i int) []string {
	ret := make([]string, 0)
	ret = append(ret, s[:i]...)
	return append(ret, s[i+1:]...)
}

func main() {
	seed := crc64.Checksum([]byte(date), crc64.MakeTable(crc32.IEEE))
	r := rand.New(rand.NewSource((int64(seed))))

	totalNames := len(names) - 1
	for i := 0; i <= totalNames; i++ {
		index := r.Intn(len(names))
		fmt.Printf("%s\n", names[index])
		names = removeIndex(names, index)
	}
}