#!/usr/bin/env python3 import sys import random # --------------------------------------------------------------------------- # Basic random number generator for lotteries, keno and more # # Blue Oak Model License 1.0.0 (https://blueoakcouncil.org/license/1.0.0) # (c) 2026 https://640kb.neocities.org # # 26jun2026: initial release # --------------------------------------------------------------------------- def print_help(): print(""" Basic Lottery Number Generator Usage: lotto Description: Generates unique random numbers within a given range. Examples: Mega: lotto 1 70 5 ( 5 numbers between 1 and 70) Mega Ball: lotto 1 24 1 ( 1 number between 1 and 24) Powerball: lotto 1 69 5 ( 5 numbers between 1 and 69) Bonus ball: lotto 1 26 1 ( 1 number between 1 and 26) Keno (P10): lotto 1 80 10 (10 numbers between 1 and 80) Options: -h, --help Show this help message Tip: To generate multiple sets in one go (as a bash one-liner) for i in {1..5}; do ./lotto 1 70 5; done for i in {1..5}; do ./lotto 1 24 1; done To remove extra blank lines when looping: for i in {1..5}; do ./lotto 1 70 5 | grep -v '^$'; done """) def main(): if len(sys.argv) == 2 and sys.argv[1] in ("-h", "--help"): print_help() return if len(sys.argv) != 4: print_help() return try: low = int(sys.argv[1]) high = int(sys.argv[2]) count = int(sys.argv[3]) if low >= high: raise ValueError("lowNumber must be less than highNumber") if count > (high - low + 1): raise ValueError("numbersGenerated is larger than the available range") except ValueError: print_help() return numbers = sorted(random.sample(range(low, high + 1), count)) print() print(" ".join(map(str, numbers))) print() if __name__ == "__main__": main()