randopeep
v1.1.6
Published
Generate random fake data, in javascript, based on data files & functions
Readme
Rando Peeps Data
Originally I made this for generating fake NPCs for RPGs & fake accounts for things online.

What random stuff can it generate?
All parameters are optional.
n parameters is how many you would like, leave blank for 1.
People
randopeep.name(params, n)- a person's name,paramsare explained belowrandopeep.job(n)- a job a person might dorandopeep.invention(n)- a seemingly awesome-sounding invention
params
A lot of different types of names can be generated. All parameters are optional, here are the defaults:
{
'origin' : random - 'chinese', 'elven/dark', 'dwarven','elven', 'english', 'germanic','japanese','orcish','spanish','netrunner',
'gender': random - 'male','female',
'last': true,
'justLast': false,
'prefix': random - true, false,
'returnData': false,
}origin- the place/time the names come fromgender- male/female, if names are genderedlast- get a lastname?justLast- get lastname only?prefix- look up gendered prefix, if applicablereturnData- return options (as generated) withnamefield, good if you want random gender/origin, but want to know about it after
If you set any of them to an array, it will pick a random element.
Places
randopeep.address.state(n)- a US staterandopeep.address.state.a(n)- an abbreviated US staterandopeep.address.zip(n)- a zipcoderandopeep.address.city(n)- a pretend cityrandopeep.address.geo(n)- a geolocationrandopeep.address.streetName(n)- a streetNamerandopeep.address.streetAddress(useFullAddress, n)- a street address, set useFullAddress to get secondary addressrandopeep.address.phone(n)- a phone numberrandopeep.address.uk.country(n)- a country in the UKrandopeep.address.uk.county(n)- a county in the UK
Credit-card Numbers
randopeep.cc(type, charCount, n)- a credit-card,typeis "visa", "mastercard", "amex", or "discover".charCountshould be 13 or 16
Corporate Things
randopeep.corporate.name(type, n)- a corporate name,typeis explained belowrandopeep.corporate.catchPhrase(n)-ncorporate catchphrasesrandopeep.corporate.bs(n)-nlines of corporate BS
type
It can be one of these:
cyber- a company from the retrofuturefirm- a law-firm, all last names are random non-fantasy, but from the same originsmall- a small companylarge- a large corp
Internet Things
randopeep.internet.ip(n)- an IP addressrandopeep.internet.domain(derived, n)- a internet domainname,derivedis explained, belowrandopeep.internet.email(derived, n)- an email address,derivedis explained, belowrandopeep.internet.username(derived, n)- an internet username,derivedis explained, below
derived
Will attempt to use the text that you give it as a base for generating other things. Makes more-legit looking email, if you already know the name, for example.
Random Text
randopeep.ipsum(n, list)-nwords from ipsumlist, default list is "lorem" and default count is 200
Clickbait
randopeep.clickbait.headline(star, n)- a clickbait headline,staris the optional name of a star for the headline to be aboutrandopeep.clickbait.star(n)- a star from a headline
Other stuff
randopeep.data- the raw data, keyed by list namerandopeep.get(list, n)-nitems fromlist
Usage
See unit-tests in test/test.js if you need more details.
Node
Install: npm install randopeep
in your code:
const randopeep = require('randopeep')
const myFakeName = randopeep.name()Browser
Just include randopeep.js in your thing, and use it like normal:
<script src="http://konsumer.js.org/randopeep/randopeep.js"></script>
<script>
document.body.innerHTML = "I'm cool dude named " + randopeep.name({gender:'male'})
</script>There is also support for AMD/require.js, just put out/randopeep.js in your application dir, and do this:
define(['randopeep'], function(randopeep){
document.body.innerHTML = "I'm cool lady named " + randopeep.name({gender:'female'})
})Adding your own name-libraries
You can add your own, if you install dev-tools with npm install then add whatever you want to data/ dir, and run npm run build.
Format is 1 item per line.
Using name-libraries
Let's pretend some of the built-in wordlist libraries don't have the randopeep.name() convenience function, and load the libraries, directly:
const myLeetName = randopeep.get('name/english/female/first') + ' ' + randopeep.get('name/netrunner/first')or even use formatting to make the code a bit neater:
const myLeetName = randopeep.format('{0} {1}',
randopeep.get('name/chinese/male/first'),
randopeep.get('name/netrunner/first')
)Testing
You can run my CLI tests with npm test or open test/index.html to run same tests, in-browser.
TODO
- use the GURPS class-data
- ipsum could be smarter with English, so it can assemble seemingly sensical text.
- use some packetstorm wordlists to generate more stuff
- setup JSONP/REST wordlist service, so none of this needs dictionaries to be local
- add support for specific types of clickbait headlines, like "tech": "X has a serious flaw, that will probably crash the internet"
- Look at chance.js for inspiration
Credits
- see data credits for info about where a lot of this stuff came from.


