As I was reading I saw this:
static NSString *randomNounList[3];
does that make an array of NSString pointers called randomNouns?
Yes, that makes an array of 3 pointers to NSString and you can freely use it as normal array.
Just remember that unlike objective-c containers plain arrays do not retain their elements and you have to maintain all memory management issues yourself (e.g. retain strings to make sure then won't get deallocated prematurely and release them when you don't need them).
It is neither an NSArray nor an NSString — it's a plain C array of pointers to NSStrings. It's not an object; it's just a block of memory with space for three pointers.
Using a C array with Cocoa objects like this is usually (but not always) a bad idea IMO. C arrays are troublesome enough in plain C. When you add in the more complicated memory management semantics of Cocoa, it can be tricky to manage everything correctly unless you wrap the array in an NSArray-like interface — and if you're doing that, why aren't you just using an NSArray?